setcookie ile sorun

4 Cevap php

there is one think, i can't understand anyway:((( when i try to set cookie(it is on line 28 in login.php), browser returns me an error!!!

Başlık bilgileri değiştirilemiyor - zaten tarafından gönderilen başlıklar (çıkışında C başladı: \ xampp2 \ htdocs Video \ index.php \: 9) C: \ xampp2 \ htdocs \ Video \ login.php on line 28

but on line 9 in index php, i haven't any header!!! there is a tag!!!
i cant understand it!!! can somebody tall me why it returns me such error?

4 Cevap

Çerezler başlıkları olarak gönderilir. Için PHP Dokümanlar setcookie:

setcookie() HTTP üstbilgileri kalanı ile birlikte gönderilmek üzere bir çerez tanımlar. Diğer başlıklar gibi çerezler, komut before herhangi bir çıkış (bu bir protokol kısıtlama olduğu) gönderilmesi gerekmektedir. Bu da dahil olmak üzere ve etiketleri yanı sıra herhangi bir boşluk, önceden herhangi bir çıkış bu işlev çağrıları yer gerektirir.

Lütfen sayfa UTF-8 formatında kaydedilmiş Ayrıca, eğer, BOM (Byte Order Mark) bunu çıktı olarak sayar gibi, herhangi bir başlık ayarlamak mümkün olmaktan durur. Bkz http://bugs.php.net/bug.php?id=22108. Bu etrafında almak için bayt sırası işareti olmadan dosyayı kaydetmek gerekir.

Ayrıca bakınız: Byte order mark#Unwanted BOMs - Wikipedia

Bir başlık göndermeden önce sitede bir şey yazdırmak olamaz.

Hatta !DOCTYPE html veya head, başlık bilgilerini ve benzeri ilan etmeden önce, (çıkış aka) herhangi bir html etiketleri ilk önce çerez ayarlayın. Örneğin dosya gibi görünebilir:

<?php setcookie("oreo", $value, time()+(60*60*24*30));?>
<?php setcookie("vanilla_wafer", $wafer, time()+(60*60*24*30));?>
<!DOCTYPE html>
<head>
    <title>Cookies and Milk</title>
</head>
<body>
<p>yo</p>
</body>
</html>

Eğer uygulama çok üstündeki başlık işlevleri olmalıdır. Gibi temelde ilk satırları başlığında içindir ();