2009-03-10 13 views
3

Mac dizüstü bilgisayarımda geliştiriyorum, MAMP kullanıyorum. PHP ile bir çerez ayarlamaya çalışıyorum ve yapamam. Alan adını bıraktım, etki alanı için "\" kullanmayı denedim. Şanssız.MAMP + MacOSx + PHP ile localhost'ta nasıl bir çerez kurarım?

setcookie("username", "George", false, "/", false); 
setcookie("name","Joe"); 

Açık bir şey eksik olmalıyım. Bunun için hızlı ve basit bir çözüme ihtiyacım var. Biri var mı

Fantezi bir şey, basitçe (MAMP yoluyla) yükleme sayfasını yapmıyorum

, http://localhost:8888/MAMP/lynn/setcookie.php

O komut üstündeki setcookie kodu, önceki hatta HTML etiketlerini yazma zorundadır. (BODY de denedim rağmen). Sayfayı çeşitli tarayıcılara yükledikten sonra çerez listesini açıyorum. Tarayıcıların çerezleri kabul ettiğini biliyorum çünkü listedeki güncelleri görüyorum. Sadece yeni olanı değil. Dokümanlar

+0

tarayıcıda çerez göremediğiniz ya da bir sonraki sayfa ziyaretinde PHP'ye dönmediği (var_dump ($ _ COOKIE))? –

+0

Çerezleri tarayıcıda veya çeşitli tarayıcılarda çerez listelerinin altında göremiyorum. – lynn

+1

Açılış php etiketi Simon

cevap

6

:

setcookie() HTTP başlıklarının kalanıyla gönderilmek üzere bir çerez tanımlar. Diğer başlıklar gibi, çerezler komut dosyanızdan herhangi bir çıktıdan önce gönderilmelidir (bu bir protokol kısıtlamasıdır). Bu, herhangi bir çıktıdan önce, ve herhangi bir boşluk gibi etiketler de dahil olmak üzere, bu işleve çağrı yapmanızı gerektirir.

Bu mu?

düzenlemek

:

çerezi görebiliyor sunucu tarafından gönderilen, örneğin Firefox eklentisini kullanarak Dış Müdahale Verilerini veya telnet? Bir sonraki istekte tarayıcının geri gönderildiğini görebiliyor musunuz? Setcookie() dönüş değeri nedir? Tüm tarayıcılarda veya bazılarında çalışmıyor mu?

+0

Sorun görünmüyor. – lynn

+1

Setcookie() çağrısından önce PHP betiğinde boş satırlar var mı? Ya da belki ilk

+0

Evet! Öyleydi. – lynn

0
<?php 
ob_start(); 
if (isset($_COOKIE['test'])) { 
    echo 'cookie is fine<br>'; 
    print_r($_COOKIE); 
} else { 
    setcookie('test', 'cookie test content', time()+3600); /* expire in 1 hour */ 
    echo 'Trying to set cookie. Reload page plz';  
} 

Bunu deneyin.

0

"localhost" 'un çıkarılması ve sadece boş bir dizenin olması benim için çalıştı.