• 27-01-2016, 16:17:05
    #10
    akcabilisim adlı üyeden alıntı: mesajı görüntüle
    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";
    Allah razı olsun üstad, valla işe yaradı, ben de delirmekten kurtulmuş oldum böylece
  • 27-01-2016, 16:18:43
    #11
    Üyeliği durduruldu
    berdema adlı üyeden alıntı: mesajı görüntüle
    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.
    Zaten arkadaşın şuan profesyonel bir script yazdığını sanmıyorum. Bu yüzden ip kontrollü bir sayaç yapmasına gerek yok diye düşünüp en basit kontrol yöntemi gösterdim.
  • 27-01-2016, 16:19:32
    #12
    berdema adlı üyeden alıntı: mesajı görüntüle
    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.
    mantık anlaşıldı üstad, ayar çekerim artık teşekkür ederim yorumlarınız için, ilaç gibi oldu
    @akcabilisim dediği gibi profesyonel bir sistem üzerinde çalışmıyorum, yap gitsin hesabı bir nevi, ekmek az olunca köfteyi de ona göre koymak gerekir
  • 30-01-2016, 13:54:02
    #13
    berdema adlı üyeden alıntı: mesajı görüntüle
    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.
    üstad sorum geçici de olsa çözülmesine çözüldü ama anlamadığım nokta şu: daha önce de hemen hemen aynı mantıkta kodlamalar yaptım ancak hiçbirinde böyle birden fazla çalıştırmadı sorguyu, bu defa neden böyle oldu (gerçi bahsetmişiniz biraz) ve önlemek için kalıcı çözüm ne olabilir? yani bir kontrol mekanizması kurmadan, sadece tek seferlik çalışacak şekilde nasıl bir kod olması gerekir? chrome 7 defa firefox 70 defa çalıştırıyor her tarayıcı için de ayrı ayrı işlem yaptırılmayacağı için bunun kökten kalıcı bir çözümü olması gerekir diye düşünüyorum.