• 27-01-2016, 14:58:18
    #1
    kısa ve öz, kodlarım:
    $idal	=	explode("/", $_GET['adres'])[0]; // Burada adres çubuğundaki adres parametresini okuyup ilk değeri aldım Örn: 10/haber-basligi için 10 değeri
    mysql_query("UPDATE haberler SET okunma=okunma+1 WHERE id = '$idal'"); // Burada da Anlaşıldığı gibi okunma değerini 1 arttırmaya çalışıyorum
    ama ne hikmetse 1 yerine 7 arttırıyor...
    sorgum 7 defa dönüyor desem 7 defa çalıştıracak bir durum yok.
    require_once ("sistem/ayar.php");
    if($site_durum == 1){ require ('tasarim/'.$tema.'/haber.php');} // Site aktifse kullanılan temanın haber.php dosyasını çağırıyor
    sadece bu kod var o da 1 defa dönüyor o kadar...
    Çözüm önerisi olan?
  • 27-01-2016, 15:04:44
    #2
    Üyeliği durduruldu
    akaracay adlı üyeden alıntı: mesajı görüntüle
    kısa ve öz, kodlarım:
    $idal	=	explode("/", $_GET['adres'])[0]; // Burada adres çubuğundaki adres parametresini okuyup ilk değeri aldım Örn: 10/haber-basligi için 10 değeri
    mysql_query("UPDATE haberler SET okunma=okunma+1 WHERE id = '$idal'"); // Burada da Anlaşıldığı gibi okunma değerini 1 arttırmaya çalışıyorum
    ama ne hikmetse 1 yerine 7 arttırıyor...
    sorgum 7 defa dönüyor desem 7 defa çalıştıracak bir durum yok.
    require_once ("sistem/ayar.php");
    if($site_durum == 1){ require ('tasarim/'.$tema.'/haber.php');} // Site aktifse kullanılan temanın haber.php dosyasını çağırıyor
    sadece bu kod var o da 1 defa dönüyor o kadar...
    Çözüm önerisi olan?
    İlk kodlar haber.php'de mi yer alıyor?
  • 27-01-2016, 15:12:25
    #3
    tümü aynı dosyada
  • 27-01-2016, 15:16:48
    #4
    Üyeliği durduruldu
    akaracay adlı üyeden alıntı: mesajı görüntüle
    tümü aynı dosyada
    Bu dosyanın adı ne hocam onu sormak istiyorum iç içe mi include ettiniz dosyayı onu anlayacağım.
  • 27-01-2016, 15:49:15
    #5
    Kodlarınızı tam görmediğim için tahmin ederek cevap vereceğim.

    Bu tür sorunların sebebi sizin kodunuzun sonsuz arttırılabilir olmasıdır. Yani php dosyanız her tetiklemede okunma değerini 1 arttıracaktır.

    Buna bir kısıtlama getirmezseniz, tarayıcınızdaki herhangi bir eklenti buna sebep oluyor olabilir.

    Örneyin siz sayfayı açtığınızda 1 arttırılır, sonra mozilla firefox sitenize arka planda ayrı bir istek yollar (atıyorum "/favicon.ico" varmı diye kontrol eder). Bu ve bunun gibi her istek arka planda veya normal olarak okunma sayısını +1 arttıracaktır.

    Bu soruna çözüm olması açısından bir Ip Havuzu mekanizması kullanmalısınız.

    Mantık şu şekilde,

    "ip-havuzu" adında tablo oluşturun. Tabloda içerik id, ip, time adında 3 stun olsun.

    Makale içeriğini çektiginiz kodların hemen altına şöyle bir kod yapısı ekleyin:

    <==(Select * from ip-havuzu where icerik id=makalenin idsi and ip=kullanicinin ip adresi)==>

    Yukarıdaki sorgunun satır sayısı 0 ise, okunma değerini 1 arttırın ve havuza insert işlemi yaptırın:


    <==(insert into ip-havuzu values icerik id=makalenin idsi and ip=kullanicinin ip adresi time=time() )==>

    Bu şekilde okunma sayısı her ip adresinden bir kere arttırılabilir olacaktır.

    Ayrıca ip-havuzu tablosunu günde bir kere temizleyin. Veya sayfanızın başına time stunu eski olanları sil gibisinden bir kod ekleyin.

    Mobilden yazılmıstır.
  • 27-01-2016, 15:59:37
    #6
    public_html klasöründeki haber.php dosyam:
    ob_start();
    require_once ("sistem/ayar.php");
    if($site_durum == 1){ require ('tasarim/'.$tema.'/haber.php');} // Site aktifse kullanılan temanın haber.php dosyasını çağırıyor}
    /* OKUNMA SAYISINI ARTTIR */
    $idal	=	explode("/", $_GET['adres'])[0]; // Burada adres çubuğundaki adres parametresini okuyup ilk değeri aldım Örn: 10/haber-basligi için 10 değeri
    mysql_query("UPDATE haberler SET okunma=okunma+1 WHERE id = '$idal'"); // Burada da Anlaşıldığı gibi okunma değerini 1 arttırmaya çalışıyorum
    tüm kodlar bundan ibaret,
    kullanılan temanın haber.php dosyası
    <?php
    	$hid=	explode("/", $_GET['adres'])[0];
    	$sqlh = mysql_query("SELECT * FROM haberler WHERE id = '$hid'");
    	while($meta = mysql_fetch_array($sqlh)) {
    		$hbaslik	=	stripslashes($meta['baslik']);
    		$hspot		=	stripslashes($meta['spot']);
    		$hicerik	=	stripslashes($meta['icerik']);
    		$hgorsel	=	$site_url.'/dosyalar/resim/haber/'.$meta['resim'];
    		$hadres	=	$site_url.'/haber/'.$hid.'/'.url($hbaslik);
    		$hetiket	=	stripslashes($meta['etiket']);
    		$htarih	=	$meta['tarih'];
    		$hokunma	=	$meta['okunma'];
    ?>
    <!DOCTYPE html>
    <html lang="tr">
    ..
    hepsi bu kadar
  • 27-01-2016, 16:08:39
    #7
    Üyeliği durduruldu
    akaracay adlı üyeden alıntı: mesajı görüntüle
    tümü aynı dosyada

    Aşağıdaki şekilde kullanırsanız bu sorun ortadan kalkar.

    ob_start();
    session_start();
    require_once ("sistem/ayar.php");
    if($site_durum == 1){ require ('tasarim/'.$tema.'/haber.php');} 
    if(empty($_SESSION["arttir"])){
    $idal =  explode("/", $_GET['adres'])[0];
    mysql_query("UPDATE haberler SET okunma=okunma+1 WHERE id = '$idal'");
    }
    $_SESSION["arttir"] = "var";
  • 27-01-2016, 16:10:55
    #8
    bu arada firefoxta baktım 187 den 254e sonra da 333e çıktı :/
    google chrome 7şer arttırıyor her defasında, chromium ise bazen 1 bazen 7 bazen 6 :/
    işletim sistemim Kubuntu 15.10
    firefoxta herhangi bir eklenti vs kurmadım, sistemin kendisiyle gelen hali öylece duruyor, google chromeda ise Page Analytics ve Full Screen Capture uzantıları çalışıyor sadece.
    gel de delirme
  • 27-01-2016, 16:14:54
    #9
    Tavsiyem bu iş için session kullanmayın. Kolay bir şekilde okunma sayınız hacklenerek sonsuz arttırılabilir. Onun yerine her ip adresine bir kere arttırma hakkı vermeniz daha mantıklı olacaktır.