PHP - Butona spam olarak basıldığında kodu birden fazla kez çalıştırıyor
12
●204
- 23-03-2022, 18:21:41Merhaba, 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:32:53DenizAli adlı üyeden alıntı: mesajı görüntüleSessionu 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.T1N3RC1 adlı üyeden alıntı: mesajı görüntüle
- 23-03-2022, 18:36:48Ö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:32Hocam 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.ifeelcode adlı üyeden alıntı: mesajı görüntüle
- 23-03-2022, 20:23:155 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.eypoffcl adlı üyeden alıntı: mesajı görüntüle
- 24-03-2022, 00:40:20PHP Memcached araştırın hocam.AndMex adlı üyeden alıntı: mesajı görüntüle
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.