webtegez adlı üyeden alıntı

merhabalar. butona 5 defa basıldıktan sonra geri sayımın başladığını farz ediyorum.
geri sayımı başlattığın fonksiyonun altına bir cookie oluştur. o cookienin zamanını 10 dakika olarak ayarla.

sonra her sayfa yenilenmede kontrol gerçekleştir. cookie varmı yokmu diye. eğer cookie varsa butonu addclass ile disabled olarak ayarlayabilirsin.

sadece mantık olarak aklıma bu geldi. ben olsaydım böyle yapardım heralde :)


Cookie rahatlıkla silinip, buton tekrar aktif hale süre dolmadan getirilebilir :) bu mantıkta yapılacaksa session kullanmak daha mantıklıdır. Ancak bu da tarayıcının kapanıp açılmasıyla session id nin değişmesiyle yani butonun tekrar aktif hale getirilebileceği anlamına gelir. O yüzden tek ve en temiz yol ip'nin alınarak veri tabanına yazılması, kontrolleri ajax ile gerçekleştirirsiniz. Eğer ajax isteğinden true dönerse javascript i devreye sokup butonu etkisiz hale getirirsiniz.
Adam yeni girdiyse de kez basana kadar bir sayaç kurarsınız javascript ile 5 kez bastıktan sonra ise ajax isteği yapıp veritabanına ip sini kaydedersiniz ve kayıt zamanını yazarsınız bundan sonra da javascript ile sayacı başlatır, butonu deaktif edersiniz.
Sayfanın yenilenmesi durumu için sayfa yüklendiği anda bir ajax isteği yaparak ip yi kontrol ettirir, ip kayıtlıysa ve kayıt zamanından bu yana 10 dk geçmediyse henüz bunu belirten bir mesaj ve kalan zamanı döndürürsünüz. kalan zaman ile yeniden javascript aracılığı ile sayacı devam ettirebilirsiniz. Kayıtlıysa ve 10 dakikayı geçtiyse kayıt zamanı kaydı siler, buton kilidini açarsınız...