• 23-03-2022, 18:21:41
    #1
    Merhaba, başlıkta da belirttiğim gibi, butona birden fazla kez spam olarak bastıklarında kod birden fazla bakiye veriyor. JS ile butona tıklanmasına geri sayım ekledim, ancak geri sayım bittikten sonra birden fazla basıldığında çoğul giriyor, onclick ile butonun tıklandıktan sonra disabled olmasını sağladığımda da php kodu çalışmıyor. Nasıl çözebilirim yardımcı olabilir misiniz?
  • 23-03-2022, 18:26:11
    #2
    Kodun nasıl birşey olduğunu bilmediğim için yorum yapamam , fakat session ile çalıştırıyorsanız bittikten sonra session_destroy() gibi birşey kullanabilirsiniz. Sadece örnek.
  • 23-03-2022, 18:29:26
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    session tutun
  • 23-03-2022, 18:32:53
    #4
    DenizAli adlı üyeden alıntı: mesajı görüntüle
    Kodun nasıl birşey olduğunu bilmediğim için yorum yapamam , fakat session ile çalıştırıyorsanız bittikten sonra session_destroy() gibi birşey kullanabilirsiniz. Sadece örnek.
    T1N3RC1 adlı üyeden alıntı: mesajı görüntüle
    session tutun
    Sessionu oturum için kullanıyorum, ayrıca her 5 saniyede 1 kere basmalarına izin vereceğim, spam atıldığında da 1 kere sayması gerek. Sessiondan ziyade js ile çözemez miyiz? her 5 saniyelik bir sistem için session mantıksız olur diye düşünüyorum.
  • 23-03-2022, 18:36:48
    #5
    Örneğin butonumuzun gönderi şu şekilde olsun -> <input type="submit"
    Ve bunu ekleyelim.
    onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();"

    Son çıktı bu şekilde gözükecektir;
    <input type="submit" onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();"

    Dilersen bunu kendine göre geliştirip değiştirebilirsin bu basit bir yöntemi. Laravel kullanıyorsan kütüphane içerisinde bu yapının daha gelişmiş bir versiyonu zaten bulunuyor.
  • 23-03-2022, 19:00:32
    #6
    ifeelcode adlı üyeden alıntı: mesajı görüntüle
    Örneğin butonumuzun gönderi şu şekilde olsun -> <input type="submit"
    Ve bunu ekleyelim.
    onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();"

    Son çıktı bu şekilde gözükecektir;
    <input type="submit" onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();"

    Dilersen bunu kendine göre geliştirip değiştirebilirsin bu basit bir yöntemi. Laravel kullanıyorsan kütüphane içerisinde bu yapının daha gelişmiş bir versiyonu zaten bulunuyor.
    Hocam bunu stackoverflow'da da görüp denemiştim, ancak bunu yaptığımda da php kodu çalıştırmamıştı, yanlışlık yapmış olma ihtimalime karşı tekrar deneyceğim, teşekkürler.
  • 23-03-2022, 20:02:28
    #7
    Veritabanında
    Tabloya sutün ekleyin clickevent
    Bir kere basınca güncellesin 1 diye
    Sonra da kontrol olsun 0 ise işlemi gerçekleştirsin
  • 23-03-2022, 20:23:15
    #8
    eypoffcl adlı üyeden alıntı: mesajı görüntüle
    Veritabanında
    Tabloya sutün ekleyin clickevent
    Bir kere basınca güncellesin 1 diye
    Sonra da kontrol olsun 0 ise işlemi gerçekleştirsin
    5 saniyede bir sıfırlanması gerekiyor, bunu nasıl çözebiliriz dediğiniz şekilde? curl ile yaparsak mantıksız olur ve sunucuyu yorar, diğer türlü aynı satır içerisine konulduğunda diğer php kodunu da çalıştırmış oluyor.
  • 24-03-2022, 00:40:20
    #9
    AndMex adlı üyeden alıntı: mesajı görüntüle
    5 saniyede bir sıfırlanması gerekiyor, bunu nasıl çözebiliriz dediğiniz şekilde? curl ile yaparsak mantıksız olur ve sunucuyu yorar, diğer türlü aynı satır içerisine konulduğunda diğer php kodunu da çalıştırmış oluyor.
    PHP Memcached araştırın hocam.
    Hesap kodu ve time() tutun ardından kontrol yapın. Çok kişi tıkladı mı sunucuya yük binebilir ama. Ve tabii ki burada önemli bilgileri tutmayın sadece üyenin id ve bastığı zaman ki süreyi -time()- saklayın. Hatta bunu md5, sha tarzı şifrelemeler ile şifreleyin.

    Javascriptte timer tutmak, session tutmak veya cookie tutmak işe yaramaz maalesef. Eklentiler ile devre dışı bırakılabilir.