Php Form Doğrulama (If Else Preg_Match) Sorunu
-
Php form doğrulatmak istiyorum ama hata veriyor veritabanına kaydetmiyor. Hata nerede bulamadım yardım.
<?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } // define variables and set to empty values $nameErr = $emailErr = ""; $adsoyad = $email = $text = ""; $tarih = date('Y-m-d'); $ip = $_SERVER['REMOTE_ADDR']; if(isset($_POST['gonder'])) { if (empty($_POST["adsoyad"])) {$nameErr = "Name is required";} else { $adsoyad = test_input($_POST["adsoyad"]); // check if name only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$adsoyad)) { $nameErr = "Only letters and white space allowed"; } } if (empty($_POST["email"])) {$emailErr = "Email is required";} else { $email = test_input($_POST["email"]); // check if e-mail address syntax is valid if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { $emailErr = "Invalid email format"; } } if (empty($_POST["text"])) {$text = "";} else {$text = test_input($_POST["text"]);} if ($adsoyad != '' && $email!= '' && $text != '') { $kayit = mysql_query("insert into yorumlar(vID,adsoyad,email,text,tarih,ip) values('$id','$adsoyad','$email','$text','$tarih','$ip')"); } else { echo '<p>You need to fill in all required fields!!</p>'; } } ?>
-
Mysql'in rezerve ettiği özel kelimelerini alan adı olarak kullanırken özel bir escape işlemi uygulamak gerekir. Text bu kelimelerden birisidir. Tam listesine erişmek istersen;
https://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
Kullanırken `` (altgr + virgül tuşu ile yapıyorsun) arasına alırsan problemi giderirsin. Ama unutmamak adına kolon isimlendirmesi yaparken bunları kullanmamaya özen gösterirsen daha iyi olur.
Austen tarafından 14/Nis/14 23:01 tarihinde düzenlenmiştir$kayit
= mysql_query(
"insert into yorumlar(vID,adsoyad,email,`text`,tarih,ip) values('$id','$adsoyad','$email','$text','$tarih','$ip')"
);
-
teşekkürler hocam text tablosunu yorum olarak değiştim ama hala sorun var kaydetmiyor. You need to fill in all required fields hatasını veriyor. http://www.dr0.net sorun burda
turkz tarafından 25/Nis/14 22:04 tarihinde düzenlenmiştir -
$email
!=
Şuradaki ifadenin birleşik olmasından olabilir. Ayrıca önerim empty($email) şeklinde kontrol etmekten çok en üstte diğer değişkenlerin yanında bunu tanımlayıp eğer dolu geliyorsa o değişkene değer ata. Error_Reporting kapalıysa onu aktif edip hata kodlarını incele derim.