• 10-07-2009, 12:20:35
    #1
    Merhaba arkadaşlar,

    bir konunun kaç defa okundugunu yazdırmak istiyorum.

    update komutu ile kac defa bakıldıgını görebilirim ama benim istedigim kişiye cookie atıp bir daha sayfayı yenilediginde sayacın artmamasını istiyorum.

    Bunu nasıl yapabilrim?
  • 10-07-2009, 12:24:42
    #2
    Üyeliği durduruldu
    setcookie("sayac","0",time()+600*600);

    if($_COOKIE["sayac"]==""){
    #update
    }
  • 10-07-2009, 12:59:11
    #3
    Tşk.ler

    <?php
    setcookie("sayac2","0",time()+600*600);
    
    if($_COOKIE["sayac2"]=="")
    {
    echo "cookie Yok";
    }
    else
    {
    echo "cookie var";
    }
    ?>
    böyle kod kullandım.

    Aşagıdaki hatayı veriyor acaba neden?

    Cookie olmadıgı anda sayfayı yeniledigimde cookie oluyor ve hata vermiyor

    Notice: Undefined index: sayac2 in C:\wamp\www\nurettin\sayac.php  on line 4
    cookie Yok
  • 10-07-2009, 13:02:25
    #4
    Üyeliği durduruldu
    sayfa başına error_reporting(0); ı ekleyin.
  • 10-07-2009, 13:28:26
    #5
    cookie içine konunun id sini değişken olarak ata, bu şekilde yaparsan eleman bir konu okur, diğer okunmayan konuyu açtığında update olmaz, yoksa benmi yanlış anladım..
  • 10-07-2009, 13:41:24
    #6
    Enigmatic adlı üyeden alıntı: mesajı görüntüle
    cookie içine konunun id sini değişken olarak ata, bu şekilde yaparsan eleman bir konu okur, diğer okunmayan konuyu açtığında update olmaz, yoksa benmi yanlış anladım..
    evet doğru diyorsun

    setcookie("sayac2" kısmınıa sayac$id şeklinde yapacagım

    hata vermesinin sebebini merak ettim. Bir şey varki veriyor :S

    Aşağıdaki gibi bir sistem yaptım ama her defasında kayıt sayac artıyor sizce neden olabilir?

    $sayacid = "haber".$id;
    setcookie($sayacid,"1",time()+3600);
    
    if($_COOKIE[$sayacid]=="")
    {
    $sayac = $sayac + 1 ;
    $is_basarili = "UPDATE haber SET sayac=$sayac WHERE haber_id=$haber_id";
    $sonuc = mysql_query($is_basarili) or die(mysql_error()); 
    }
    else
    {
    }
    ?>
  • 11-07-2009, 12:49:01
    #7
    sorun devam ediyor çözemedim
  • 11-07-2009, 12:57:25
    #8
    Hocam mantık basit aslında, şöyle bi kod işini görecektir

    <?
    
    setcookie($konu_id, '1', time()3600*3600);
    
    if(empty($_COOKIE['konuid'])){
    print 'Bo kunu daha önce okunmadı';
    // Bu kısma mysql sorgularını yazarsın, hiti arttırırsın falan..
    }else{
    print 'bu konu daha önce okundu';
    }
  • 11-07-2009, 15:11:23
    #9
    Bu şekilde bir sürü cookie atmış oluyorsun. Kişi 50 konu okursa 50 adet cookie olmuş olacak şöyle yaparsan tek cookie ile işi bitirirsin.

    <?php
    if(!in_array($id, explode('|', $_COOKIE['konu_okuma_sayaci']))){
    //Mysql update
    setcookie('konu_okuma_sayaci', $id.'|'.$_COOKIE['konu_okuma_sayaci'], time()+86400, '/');
    }
    ?>