<%
'|||||||||||||||||||||||||||||||||||||||||||||||||||
'||| Coded by 3r@$3r |||||
'||| MAIL : [email]destek@coneximtech.com.com[/email] |||||
'|||||||||||||||||||||||||||||||||||||||||||||||||||
If SESSION("X" )="" Then 'Ddos Flooder Engelleyici ;]
SESSION("X" )=0 'Oturum Açildi !
Else
SESSION("X" )= SESSION("X" ) + 1 ' 1 Artiriyoruz
End If
If CInt(SESSION("X" ))> 5 Then ' 5 Kere Sayfaya Yenilenirse 2 Dakkika Siteden Uzaklastiriyoruz
Session.TimeOut=1
Response.Write("<title> DDos Korumasi Devrede ! </title>")
Response.Write("<link rel=""stylesheet"" type=""text/css"" href=""style/rawk.css"">")
RESPONSE.WRITE("<center><font class=""ddos""><b>DDos Korumasi Devrede !</b><br>")
Response.Write("<b>Kisa Bir Süreligine Siteden Uzaklastirldiniz.</b></center>")
RESPONSE.END
End If
%>
Kodları istediğiniz sayfaların en üstüne koyun.
PHP- Kodu:
Ayrıca bakınız.PHP:<% '||||||||||||||||||||||||||||||||||||||||||||||||||| '||| Coded by 3r@$3r ||||| '||| MAIL : [email]destek@coneximtech.com.com[/email] ||||| '||||||||||||||||||||||||||||||||||||||||||||||||||| If SESSION("X" )="" Then 'Ddos Flooder Engelleyici ;] SESSION("X" )=0 'Oturum Açildi ! Else SESSION("X" )= SESSION("X" ) + 1 ' 1 Artiriyoruz End If If CInt(SESSION("X" ))> 5 Then ' 5 Kere Sayfaya Yenilenirse 2 Dakkika Siteden Uzaklastiriyoruz Session.TimeOut=1 Response.Write("<title> DDos Korumasi Devrede ! </title>") Response.Write("<link rel=""stylesheet"" type=""text/css"" href=""style/rawk.css"">") RESPONSE.WRITE("<center><font class=""ddos""><b>DDos Korumasi Devrede !</b><br>") Response.Write("<b>Kisa Bir Süreligine Siteden Uzaklastirldiniz.</b></center>") RESPONSE.END End If %>
Keremalizm: Php #Site İçi Flood Engelleme~TG Açıldı
$ard_arda_kayit_girme_suresi=10; // saniye cinsinden
if ($_SESSION['sonkayit']-microtime()>$ard_arda_kayit_girme_suresi) {
//kayit ekleme komutları buraya
$_SESSION['sonkayit']=microtime();
}
bu işini görecektir denemedim gerçi belki ufak tefek sytax hataları vardır
PHP:$ard_arda_kayit_girme_suresi=30 // saniye cinsinden if ($_SESSION['sonkayit']-microtime()<$ard_arda_kayit_girme_suresi) { //kayit ekleme komutları buraya $_SESSION['sonkayit']=microtime(); }
Şöyle bir çözüm önerebilirim ancak hangi dil ile yapılıyor bilmiyorum Javascript tir tahminen.
Kaydet butonuna tıklandığı anda buton pasif duruma geçer ve butonun üzerindeki yazı "İşleminiz yapılıyor..." olarak değişir. Bu işinizi görecektir diye düşünüyorum.
$sql=mysql_query("SELECT kullaniciadi FROM uyeler WHERE kullaniciadi='$kullanici'");
if(mysql_num_rows($sor)>0){
echo "Böyle Bir Kullanıcı Kaydı Daha Öncede Yapılmış";
}else{
$ekle=mysql_query("insert into uyeler (kullaniciadi,sifre)values('$kullanici','$sifre')");
if($ekle){
echo "Kayıt Yapıldı";
}else{
echo "Kayıt Yapılamadı";
}
}
<script type="text/javascript">
function isimDegistir() {
document.Kayit.cmdKayit.value="Lütfen işleminiz gerçekleşirken bekleyiniz.."
}
</script>
<form name="Kayit">
<input type="button" name="cmdKayit" value="Kayıt Ol" onclick="this.disabled=true; isimDegistir();">
</form>
Ben de zamanında bir bilgi edinme modülü yazmıştım, yüzlerce kişi kullanıyor, hiçbirinde hata olmuyor, fakat ne zaman ben test etmek için kendim doldursam formu, üç dört defa kaydediyor. (Farklı tarayıcılarda da öyle.) Sebebini hala çözebilmiş değilim, o modülden birçok bilgi edinme talebi geldi bana, hiçbiri de kaydı ikilemedi; ama kendim test için şimdi bile kayıt yaptığımda üç dört defa, bazen beş defa giriyor veritabanına. Daha da ilginç olanı, veritabanına girdiği bilgilerin bir kopyasını da mail olarak attırıyorum; mailler de 5 defa geliyor fakat belli aralıklarla. Sunucuda mail yükü (query) olmadığı halde ben formu kaydettikten atıyorum 10 dakika sonra bile doldurduğum formun birbirinin kopyası olan mailleri gelebiliyor.
Histerik bir durum. Bu nedenle kaydet butonuna bir kaç defa bastıklarına inanmakta çok ısrarcı olmazdım ben olsam.
POST'u PHP değil de jQuery AJAX kullanarak yaparsanız, JS ile bunun önüne çok kolay bir şekilde geçebilirsiniz.
Zaten bir jQuery kontrolüne koyarsanız işlem bitmeden(callback fonksiyonuna gelmeden), yeni bir işlem başlayamayacak. Ama madem sorun iki kez basılması değil diyorsunuz, POST ettiğiniz ve POST'u işlediğiniz dosyayı mahsuru yoksa koyabilir misiniz? Belki de ufak bir mantık hatası bu sorunu çıkarıyordur?Sorun kayıt tuşuna iki defa basılması olmadığı için POST'u PHP ile göndermekte hiçbir mahzur yok.
$con = mysql_connect($host,$girisadi,$sifre);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db, $con);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET 'latin5_turkish_ci'");
mysql_query("COLLATE 'latin5_turkish_ci'");
for ($i=1;$i<=8;$i++){
if ($_POST['durus'.$i]<>''){
$sql="INSERT INTO durus_giris (sicil_no, bolum_id, makina_bant, durus_kodu, sure, tarih, vardiya, aciklama) ";
$sql.="values (";
$sql.="'".$_POST['users']."', ";
$sql.="'".$_POST['bolum']."', ";
$sql.="'".$_POST['bant_makina'.$i]."', ";
$sql.="'".$_POST['durus'.$i]."', ";
$sql.="'".$_POST['sure'.$i]."', ";
$sql.="'".$_POST['tarih']."', ";
$sql.="'".$_POST['vardiya']."', ";
$sql.="'".$_POST['aciklama'.$i]."'";
$sql.=")";
mysql_query($sql) or die("Kayıt olmadı!");
}
}
mysql_close($con);
$insertGoTo = "uretim.php?key=6";
header(sprintf("Location: %s", $insertGoTo));
$sql_sk="select * from stok_kart where stok_kodu='".$_POST['urun_kodu']."'";
$result_sk = mysql_query($sql_sk);
$row_sk = mysql_fetch_array($result_sk);
$sql1="insert into uretim_giris (stok_kodu,bolum,miktar,birim,sicil_no,vardiya,tarih,mak_bant,operasyon_kodu,calisan_sayisi,parti_no) ";
$sql1.="values (";
$sql1.="'".$_POST['urun_kodu']."',";
$sql1.="'Montaj',";
$sql1.="".$_POST['miktar'].",";
$sql1.="'".$row_sk['birim1']."',";
$sql1.="'".$_POST['users']."',";
$sql1.="'".$_POST['vardiya']."',";
$sql1.="'".$_POST['tarih']."',";
$sql1.="'".$_POST['bant_no']."',";
$sql1.="'',";
$sql1.="'',";
$sql1.="''";
$sql1.=")";
mysql_query($sql1) or die("Üretim giriş tablosuna giriş olmadı!");
$sql2="insert into hareket (ilk_h_id,hareket_tipi,depo_kodu,h_stok_kodu,miktar,parti_no,kasa_no,sicil_no,tarih) ";
$sql2.="values(";
$sql2.="'0',";
$sql2.="'G',";
$sql2.="'Montaj',";
$sql2.="'".$_POST['urun_kodu']."',";
$sql2.="'".$_POST['miktar']."',";
$sql2.="'',";
$sql2.="'',";
$sql2.="'".$_POST['users']."',";
$sql2.="'".$_POST['tarih']."'";
$sql2.=")";
mysql_query($sql2) or die("Hareket tablosuna yeni girişler olmadı!");
mysql_close($con);
$insertGoTo = "uretim.php?key=0&secim=montaj&sec=giris";
header(sprintf("Location: %s", $insertGoTo));
İlk yazdığınız kodlara göre formunuzda 8 tane alan var. durus1, durus2,durus3... şeklinde. Döngü içerisinde hepsini kontrol ettirip boş değillerse kayıt yaptırıyorsunuz. Ama dediğinize göre bazen çift kayıt yapıyor. Benim aklıma gelen formda alanların name kısmında bir hata olduğu. Acaba durus1, durus2, durus3, durus3, durus5,durus6,durus7,durus8 şeklinde bi hata yapmış olabilir misiniz? Yani aynı ada sahip iki alan olabilir mi formda?
İşte masaüstü programlamanın üstünlüğü burda ortaya çıkıyor. Örneğin Visual Studio 'da böyle bir durumda breakpoint vasıtasıyla kodları satır satır çalıştırıp nerde hangi değeri alıyor görebilirdik.
Sanırım asp.net 'de bu mümkün ama php 'de bunu yapabilen bi ide yok sanırım.