Merhaba arkadaşlar, cookie kullanarak bir sayaç yaptım ancak çerezleri silip php sayfasını ilk açtığımda hata veriyor daha sonra düzgün bir şekilde çalışıyor.Acaba hata neden kaynaklanıyor ?
Teşekkür ederim ancak intval fonksiyonunun bu kodda ne işe yaradığını anlayamadım.
aMACHİNE
kullanıcısına yanıt
intval() değişkeni integer'a çeviriyor. Burada %100 gerekli olmayabilir, zaten + yazdığınızda php bu işi yapıyor ve string için hata vermiyor. Fakat her şeyi olması gerektiği gibi yapmakta fayda var (mesela ya önceden hata verebilecek bir değer yüklenmiş sonra da unutulmuş olsa çerez olarak?), arkadaş da o yüzden yazmıştır.
Aslında sizin hatanız en sondaki bölümde "echo $_COOKIE['sayac'];" Tekrar bakınca göreceksiniz:
Peki hata neden çerezleri silip ilk kez çalıştırdığınızda meydana geliyor? Bu da http protokolü ve $_COOKIE php autoglobalinin çalışma şekliyle ilgili. Siz ilk kez setcookie() dediğinizde, php $_COOKIE autoglobalinin içeriğini değiştirmez. Dolayısıyla ilk seferinde bu hala tanımsızdır. Tekrar yüklediğinizde artık çerez tarayıcı tarafından gönderilmiştir ve $_COOKIE['sayac'] tanımlıdır.
O yüzden "echo "0";" olarak düzeltmiş arkadaşımız.
Kolay gelsin...
voenetto
kullanıcısına yanıt
Hocam çok teşekkür ederim çok açıklayıcı bir yazı olmuş.