doğrulama kontrol edin

4 Cevap php

i veritabanına günlük değer ekleme duyuyorum, ben gibi doğrulama istediğiniz gün zaten önceden thaanks ... Herkes aşağıdaki kodu kontrol edebilirsiniz ediniz .. günde zaten innsert gereken başka biri diyebilirim varsa

$dexist=$_POST['ext'];
$res=mysql_query("select Day from mess where Day='".$dexist."' ");
while($row=mysql_fetch_array($res))
{
    $dy=$row['Day'];
}

if($dy==$dexist)
{
    echo "<script language=\"javascript\">";
    echo "window.alert ('File already exist');";
    echo "//--></script>";

}
else
{
    mysql_query("insert into mess (Date,Day,Breakfast,StartTimeb,EndTimeb,Lunch,StartTimel,EndTimel,Dinner,StartTimed,EndTimed) values('".$date."','".$day."','".$bre."','".$bres."','".$bree."','".$lun."','".$luns."','".$lune."','".$dinn."','".$dins."','".$dine."')");
}

4 Cevap

Script "SQL Enjeksiyon!" Çığlıkları Sitemde pwn Lütfen!

Ayrıca: Kod senkronizasyon sorunları savunmasızdır. Örneğin, bir select deyimi koştu SONRA dosyası oluşturulur olabilir, ancak INSERT deyimi koştu ÖNCE. Bu tuhaf hatalarına neden olur. Eğer "seçin ve insert" (- özellikle, bu bir "karşılaştırma ve takas" bir örneği olan atomik işlemler kadar okuyun) tek bir saklı yordam olarak yapmalıyım nedeni budur.

Öncelikle, hiç bir MySQL sorguya veri GET / POST kontrolsüz geçmesi, bu büyük bir güvenlik açığı bulunuyor. mysql_real_escape_string yerine kullanın:

$res=mysql_query("select Day from mess where Day='" . mysql_real_escape_string($dexist) . "' ");

Ve ikinci bir çağrı için benzer.

İkincisi, bu ... lütfen tell us if the code is not working yere soruyorsun ne temizlemek ve alıyoruz herhangi bir hata değil. Ben bu hat ile ilgili bir sorun olduğunu düşünüyorum:

if(file_exists($dy==$dexist))

İşte file_exists fonksiyonuna ($dy==$dexist doğru veya yanlış değerlendirir) bir Boole değeri geçiyor. Sen içeri dosya geçmesi gerekiyor

Bu soru bir repost.

searching for the original..

found it.. http://stackoverflow.com/questions/1802738/want-to-check-day-already-exist