我不必担心mysql折旧,也不必担心SQL注入,只是个人项目
我的代码:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // check if the user submits data (POST) or just loads the page (GET)
$error = false;
$required = array('uexam_id', 'usubject', 'uexam_date'); //VALIDATION: first check all required fields are not empty.
foreach($required as $field) {
if (!isset($_POST[$field]) || empty($_POST[$field])) {
$error = true;
break;
}
}
//if a field was empty, show error
if ($error) {
die("All fields required!!! <a href='examisud.php'> Back to PHP Form </a>");
} else {
$InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('".mysql_real_escape_string($_POST["uexam_id"], $con)."','".mysql_real_escape_string($_POST["usubject"], $con)."','".mysql_real_escape_string($_POST["uexam_date"], $con)."')";
$result = mysql_query($InsertQuery, $con) or die('query Failure:'. mysql_error());
}
}
我这里有一个表面/美学问题。 插入/更新/删除查询工作正常但是这个foreach循环似乎给我带来了麻烦。 每次我导航到这个页面(examisud),我都会收到错误&#34;所有必填字段&#34;。除此之外,实际上并没有发生任何错误,它只是显示消息。由于某种原因,页面加载。 此外,每当我更新或删除时,错误消息都会再次显示,但字段中的值会按照预期更新/删除。 这很奇怪,我希望有人可以指出我阻止这个循环出现的方式只有在我需要它时,这是一个字段留空? 非常感谢任何帮助!
答案 0 :(得分:0)
试试这个:
每次在页面加载时,您的条件都会成立。
删除此内容:if ($_SERVER['REQUEST_METHOD'] == 'POST')
使用此:if (!empty($_POST))
答案 1 :(得分:0)
只需调试它以查看哪个字段使您的$ error等于true:
foreach($required as $field) {
if (!isset($_POST[$field]) || empty($_POST[$field])) {
$error = true;
echo 'Im an empty field that causes you trouble: ' . $field;
break;
}
}