I zaten başlıklarını gönderdiğiniz her hata mesajı alıyorum Neden

6 Cevap php

Ben web programlama hakkında başka bir soru var.

Ben bir oturum açma komut programlanmış, ama onu giriş çalışın her Zaten başlık bilgileri göndermek ettik diyor.

Burada 2 dosyalar şunlardır:

<?php
if($_GET['logout'] == 1) {
    setcookie('authorized', 1, time()-3600);    
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Login - photoAdminSite</title>
</head>

<style type="text/css"> 
    body {
    text-align: center;
    font-family: helvetica;
    }

    #loginForm {
    padding: 1em;
    background: #e3e3e3;
    width: 260px;
    margin: 3em auto 0;
    text-align: left;

    }
</style>

<body>

<div id="loginForm">
<form method="post" action="confirm_login_credentials.php">

<h2>LOGIN</h2>
<p>Username: <input type="text" name="username" /></p>
<p>Password: <input type="password" name="password" /></p>
<p><input type="submit" value="Login" name="submit" /></p>

</form>
</div>
</body>
</html>





<?php
$username = $_POST['username'];
$password = $_POST['password'];

require 'database.php';

$q = "SELECT id FROM users_photoadminsite WHERE user_name = '$username' AND password = '$password'";

$result = $mysqli->query($q) or die(mysqli_error());

if (mysqli_num_rows($result) == 1) {
    setcookie('authorized', 1, 0);
    header("Location: index.php");
} else {
    header("Location: login.php");  
}
?>

ben bazı yararlı cevaplar gerçekten çok mutlu olurdu.

6 Cevap

Herhangi bir çıktı tarayıcıya gönderilmeden önce Çerezler ve Başlıkları ayarlanması gerekir. Sayfanın üstüne giriş komut taşımayı deneyin. Ayrıca kötü niyetli etkinliği önlemek için sorguları hijyen düşünebilirsiniz.

Bunu php dosyanın başında boş bir satır olabilir. PHP script başlamadan önce Belki uzay

Hatları 60, 61, ve 63 görmek ve onlar nasıl gelmek after bütün HTML? Yerine önce onları koyun.

PHP zaten başlıklarını gönderilen dediğinde, bazı metin zaten komut (ya da denir komut) ile çıkış olmuştur demektir. Bu herhangi bir ve tüm hata mesajlarını içerir.

Metnin İLK parça PHP ile çıkış olduğunda onun başlıklarını gönderir, ama önce değil. Herhangi bir metin çıktısı önce HTTP çerezleri (başlıklarının bir parçası) ayarlanacak almak için, çerezler gönderilmesi gerekir.

Ne yapabilirim ob_start , and ob_end_flush kullanarak ve diğer çıkış kontrol fonksiyonları çıktı tamponlama aktif.

Ne de yapabilirim o metin çıkışları otomatik çerez başlık göndermek için php.ini variable ayarlamaktır.

Eğer php.ini output_buffering etkin var yoksa onu hemen html göndermeye başlayacaktır çünkü bu hatayı alırsınız. Çıktı tamponlama etkinleştirmek için php.ini düzenlemek gerekir.

Bu Windows üzerinde mi? BOM kontrol edin. Not Defteri'nde açın ve yardımcı olmadığını görmek için ANSI olarak kaydedin.