Uyarı ile yardım: başlık bilgileri değiştirilemiyor - zaten (çıkış tarafından gönderilen başlıklar C'de başladı: \ # # hatalar [yinelenen]

4 Cevap php

Bu soru burada zaten bir cevabı var:

4 Cevap

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.

Bir yerde size gönderilir, ya da daha büyük olasılıkla bazı gerçek içeriği gönderilen boş bir satır ya var yayınlanan kod önce. PHP artık (onlar sayfa içeriğine önce gönderdiğimiz gibi) başlıklarını güncelleyebilirsiniz sayfa içeriğini göndermeye başladıktan sonra.

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();