Giriş yap
COOKIE ile tekil hit

Arkadaşlar ürünlerin gösteirldiği sayfada o ürünü kaç kez görüntülendiğini gösteriyorum.
Fakat her refresh yapıldığında sayaç artmaması için sayfa görüntülendiği anda $_GET['UrunID'] cookiye atayıp 1 gün süre ile refresh yaptığında saymasın istiyorum.

 setcookie('GoruntulenenUrunID['.$_GET['UrunID'].']', strtotime('+1 day'));

şeklinde görüntülenen sayfayı cookiye yazdırıyorum.

Fakat tekrarlandığında bu cookie içinde bu UrunID var mı kontrolünü nasıl yaparım bulamadım.

mutluol
136 gün önce

if(çerez adı === true){ }else{ setcookie('GoruntulenenUrunID['.$_GET['UrunID'].']', strtotime('+1 day')); }

çerez varsa bir işlem gerçekleştirmiyor çerez yok ise çerez tanımlıyor

pcmemo
136 gün önce

Teşekkür ederim.

(çerez adı === true)

kısmını da tam yazabilir misin?

mutluol
136 gün önce

if(isset($_COOKIE['GoruntulenenUrunID'])){}else{setcookie('GoruntulenenUrunID['.$_GET['UrunID'].']', strtotime('+1 day'));} böyle daha kısa oldu

pcmemo
136 gün önce

GoruntulenenUrunID cerez adı UrunID ise sayfada görüntülenen ürünün id'si. Senin yazdığın kodun baş tarafında bu isimdeki cookinin içinde hangi ürünün olduğunu anlaması için UrunID de olması gerekmez mi?

if(isset($_COOKIE['GoruntulenenUrunID'])) yani bu bölüm bu isimde bir çerez varmı diye bakıyor, ama bu çerezin için UrunID var mı diye anlaması gerek.??

shelby
136 gün önce

Sorununa veritabanınıda eklemelisin yoksa çözemezsin, tarayıcılar belli sayıda cookie tutarlar.

mutluol
136 gün önce

sen bunu sorunca fark ettim çerezi yanlış tanımlamışsın zaten, değer yok.
$_GET['UrunID'] = 22;
if(@$_COOKIE['GoruntulenenUrunID'.$_GET['UrunID'].''] ===true){}else{setcookie('GoruntulenenUrunID'.$_GET['UrunID'].'', $_GET['UrunID'], strtotime('+1 day'));}
echo $_COOKIE['GoruntulenenUrunID'.$_GET['UrunID'].''];

pcmemo
136 gün önce

@shelby veritabanı tamam ama üye olmayanların UserID sini veritanabına yazdıramadığım için login olmayanlarda hit tekrar tekrar artabilir. O yüzden cookie olabilir diye düşündüm. Login ypmadan her kullanıcının unique olan ne tip bilgisini yazabilirim ki veritabanı seçeneğini devreye alabileyim.

mutluol
136 gün önce

session kontrolü yaptıracaksın eğer session yok ise misafir kullanıcılar için çerez atayacaksın tamamemen if ve else ile mantığa uygun koşullar yazmana dayalı yani

$uye(bu değişken sesionu temsil ediyor olsun) ve $misafir adında iki değişkenin var diyelim

if(isset($uye)){yukarıadaki çerez kodları}else{$misaifr = setcookie... if(yine çerezler)} gibi... kısacası var mı, yok mu, varsa ne olacak, yoksa ne olacak mantığı üzerinden gitmelisin.

shelby
135 gün önce

@pcmemo doğru düşünmüşsün, kimliği doğrulanmamış kullanıcı da cookie kullanmalısın. Tek bir cookie oluşturman yetecektir. Veritabanı kısmında userid yerine cookie yazdıracaksın tabii böyle olursa user id kısmı null olacak userid yazdırdığında ise cookie boş olabilir veya ikisini de yazdırabilirsin, işin içine kullanıcı ip'sini de sokabilir misin bilemiyorum. Şu anda sistemi tam kafamda oturtamadım. Kimliği doğrulanmamış
cookie'sinden gelen bilgi ile veritabanından sorgu yaparsan, sonuca ulaşırsın gibime geliyor.

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz

Günlük Film Tavsiyesi