Bu soru burada zaten bir cevabı var:
Senin kod dosyaları (?>
) PHP bitiş etiketleri kaldırarak öneririm. Onlar çözümleyici tarafından gerekli değildir, ve sonra herhangi bir boşluk karakterleri ?>
tarayıcı çıkışı neden, ve setcookie()
ve header()
çağrıları müdahale edecektir. Yanı sıra dosyaların en üstünde hiç boşluk açık <?php
etiketleri önce olduğundan emin olun. Benim tahminim db_connect dosya bunun sonunda WHITESPACE olmasıdır.
Bir kenara, size onları sterilize olmadan sorgu doğrudan $_POST
değişkenleri koyarak bu yana, göz kamaştırıcı bir SQL Injection güvenlik açığı var. Bunu yapmanız gerekir:
$sql="SELECT * FROM members where UserName='".
mysql_real_escape_string($username)."' and
Password='".mysql_real_escape_string($password)."'";
Header () fonksiyonu ile başlıkları yeniden tanımlıyor önce yanıt vücut parçası Yürürlükten değil yani, HTTP vücuda herhangi bir karakter göndermek gerekir.
(Herhangi bir dosya dahil başında veya sonunda karakter herhangi blanck hattını değil vardır kontrol edin ve çağrı başlık daha önce hiç yankı yok olup olmadığını kontrol edin).
Karakter her zaman () başlık çağırmadan önce gönderilir, bu sorun her zaman olur.
Oturumlar ve oturum açma ve bu ile uğraşırken, sen başlık hataları önlemek için çıkış tamponlama kullanmalısınız. Böyle bir şey:
//Start the output buffer so we don't create any errors with headers
ob_start();
//Check to see if it has been started
if(session_started()){
echo 'The session has been started.<br />';
}else{
echo 'The session has not been started.<br />';
}
//Start the session
echo 'Starting Session...<br />';
session_start();