merhaba arkadaşlar,
Bir üyelik formu ile veri tabanına üye kaydı alıyorum. Şöyle bir şey yapmaya çalışıyorum ama mantığını kuramadım. Aynı ip'den art arda kayıt olmak istediğinde 30 sn beklemesi gereksin kişinin. Bunun mantığını nasıl oluşturabilirim.
Art arda Kayıt Engelleme
4
●2.286
- 06-10-2014, 22:55:56
<?php session_start(); error_reporting(0); mysql_connect("localhost","root",""); $sure= "600"; //10 dk ?> <form action="" method="POST"> <input type="text" name="bilgi"> <input type="submit" value="Gönder"> </form> <?php if ($_POST['bilgi']) { if (($_SESSION['kontrol']+$sure)>time()) { //Kontrol ediliyor echo ("10 dk geçmeden ikinci bir post gönderemezsiniz"); die(); } $ekle=mysql_db_query("dbadi","insert into tabloadi (kolon) values ('$bilgi')"); $_SESSION['kontrol']=time(); echo "başarı ile eklendi."; } ?> - 06-10-2014, 23:00:00uye tablosuna ziyaretçinin kayıt olurken kullandığı ip adresini ve kayıt tarihini ekleyin.
Aynı ip den tekrar istek geldiğinde o ipye ait son kayıt olan üyenin, kayıt olma tarihi ile güncel saati karşılaştırın.
Çıkan sonuç istediğiniz değerden düşük ise hata mesajını yazdırır, büyük ise de kayıt işlemini yaparsınız. - 06-10-2014, 23:31:06Teşekkürler ilginiz için,
şöyle bir çözüm buldum. Kişinin kayıt olduğu zamanı time(); fonksiyonu ile veritabanına kayıt ediyorum. Tekrar kayıt olmak istediğin yine time() fonksiyonu ile kontrol ediyorum. Eğer kayıt ile şu anki time() zamanı arasındaki fark 30dan az ise bekletiyorum.
Bu şekilde herhangi bir sıkıntı olur mu acaba? - 07-10-2014, 01:45:20Yoğun bir sisteminiz var ise sürekli mysql e sorgu göndermek sisteminizi yavaşlatabilir, bunun yerine;ACYN adlı üyeden alıntı: mesajı görüntüle
Arkadaşın verdiği sistemde SESSION yerine COOKIE kullanarak yapabilirsin. SESSION tarayıcıyı kapatıp açtığında silinir COOKIE biraz daha güvenli olabilir böyle bir sistemde. Mysql'i de yormadığı için en mantıklısı bu yöntemdir.mhmtknbck adlı üyeden alıntı: mesajı görüntüle