• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

Veri ekleme süresi

Konuyu Okuyan Kişiler (0)

mhmtknbck

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
7
Beğeniler
0
#1
Merhaba. form ile veritabanına kayıt ekleniyor. ip kayıtlarıda ekleniyor. aynı ip 20dk içerisinde veri eklemesi yapamasın. bunun için önerebileceğiniz döküman veya fikir varmıdır?
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#2
şimdi ip kayırlı ise ip bilgisini 20 dakikalık bir cookie olarak kullanıcıya atamasını yap
sonra aynı kullanıcı post göndermeye çalıştıgında cookie varmı yokmu varsa $_SERVER['REMOTE_ADDR'] ile iplerşi karşılaştır ipler eşit ise iptal et

sadece mantık...
 

Çağrı

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
86
Beğeniler
0
Konum
izmir
#3
id|ip|tarih şeklinde bir veirtabanı oluşturup her kayıtta oraya tarihi ile eklersiniz.Sonrasında ise eklemeden önce kontrol edersiniz.Koda dökmek gerekirse.
PHP:
$ip=$_SERVER['REMOTE_ADDR'];
$varmi=end(mysql_fetch_assoc(mysql_query("select count(id) from ipkayit where ip='$ip' and tarih>'".(time()-60*20)."'")));
if($varmi==0){
mysql_query("insert into ipkayit (tarih,ip)values(now(),'$ip')");
//diğer kayıtlar
}
 

mhmtknbck

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
7
Beğeniler
0
#4
o kodu uyguladığımda ( sanırım yanlış yapıyorum) veri tabanına 2 şer kayıt yapıyor :(
alttaki formdan gelen veriyi kaydediyor.

PHP:
<?php
include("db.php");
$sid = $_POST ['sidno'];
$ip=$_SERVER["REMOTE_ADDR"];
$zaman=date("H:i");
$sidname = $_POST ['sidno'];
$tarih=date("d-m-y");

$kontrol = mysql_query("Select aranacak,degisecek From degicek Where aranacak = '".$sidname."'") or die(mysql_error());
if(mysql_num_rows($kontrol) > 0){
	$al = mysql_fetch_array($kontrol);
	$sid= $al['degisecek'];
}

$kayit=mysql_query("insert into kayitlar (sidnumara, zaman, ip, sidname, tarih) values ('$sid', '$zaman', '$ip', '$sidname', '$tarih')");
if ( $kayit ) {
echo "SID Kayıt Edildi..";
}else{
echo "SID Kayıt Edilmedi..";
}
?>
 

kralmermi

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
93
Beğeniler
0
Konum
<?php ?>
#5
select Count(*) as konusay FROM tabloadi WHERE tarih BETWEEN '20dk onceki tarih' and 'suanki tarih';
if(konusay > 0){ echo "yeni konu açmana izin yok"; }else { echo "aç konu hadi izin verdim"; }

kolay gele :D
 

Çağrı

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
86
Beğeniler
0
Konum
izmir
#6
o kodu uyguladığımda ( sanırım yanlış yapıyorum) veri tabanına 2 şer kayıt yapıyor :(
alttaki formdan gelen veriyi kaydediyor.

PHP:
<?php
include("db.php");
$sid = $_POST ['sidno'];
$ip=$_SERVER["REMOTE_ADDR"];
$zaman=date("H:i");
$sidname = $_POST ['sidno'];
$tarih=date("d-m-y");

$kontrol = mysql_query("Select aranacak,degisecek From degicek Where aranacak = '".$sidname."'") or die(mysql_error());
if(mysql_num_rows($kontrol) > 0){
	$al = mysql_fetch_array($kontrol);
	$sid= $al['degisecek'];
}

$kayit=mysql_query("insert into kayitlar (sidnumara, zaman, ip, sidname, tarih) values ('$sid', '$zaman', '$ip', '$sidname', '$tarih')");
if ( $kayit ) {
echo "SID Kayıt Edildi..";
}else{
echo "SID Kayıt Edilmedi..";
}
?>
kontol etmişssiniz sanırım var mı diye?
 

mhmtknbck

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
7
Beğeniler
0
#7
yok o girilen verinin yerine farklı veri yazdırıyorum onu kontrol ediyor.
 

kralmermi

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
93
Beğeniler
0
Konum
<?php ?>
#8
$kayit=mysql_query("insert into kayitlar (sidnumara, zaman, ip, sidname, tarih) values ('$sid', '$zaman', '$ip', '$sidname', '$tarih')");
if ( $kayit ) {
echo "SID Kayıt Edildi..";
}else{
echo "SID Kayıt Edilmedi..";
}


şurdaki if kontrolunu

if(mysql_insert_id > 0){
}else{
}

şeklinde ayarlayip denesene bakalim çift kayıt eklicekmi ? eklerse sayfayi yada kodu 2 kere calistiriyorsun demektir. eklemiyorsa $kayit yazdiginda kod 1 kere daha calisiyor demektir. kolay gelsin.