【发布时间】:2014-03-31 03:14:05
【问题描述】:
所以,我有以下代码:(暂时不要担心 SQL 注入/mysql 折旧)
$required = array('uexam_id', 'usubject', 'uexam_date');
$error = false;
//VALIDATION: first check all required fields are not empty. if post has values
if(!empty($_POST))
foreach($required as $field)
if ( empty($_POST[$field]))
$error = true;
//a field was empty, show error
if ($error) {
die ("All fields required!!! <a href='examisud.php'> Back to PHP Form </a>");
}
//no error - try the query
elseif($error === false && !empty($_POST) )
{
$InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('$_POST[uexam_id]','$_POST[usubject]','$_POST[uexam_date]')";
$result = mysql_query($InsertQuery, $con) or die('query Failure:'. mysql_error());
}
所以当我导航到这个 php 表单 (examisud.php) 时,我首先会看到“所有必填字段”。然后我可以导航回表单,如果没有填写所有字段,它可以正常插入数据并显示错误。 *我怎样才能让“所需的所有字段”不显示在表单页面加载中,并且仅在我需要时显示(当字段留空时)。 当我还更新或删除字段时,我还会收到“所有必填字段”错误显示。但是,除了弹出错误之外,所有内容都会正常更新/删除。
所以基本上我只需要在插入查询中的字段留空时显示它! 提前感谢您能给我的任何帮助!
*编辑我的表单:
{
echo "<form action=examisud.php method=post>"; //HTML FORM ECHOED OUT BY PHP
echo "<tr>";
echo "<td>" . "<input type=text name=exam_id value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=text name=subject value=" . $record['subject'] . " </td>";
echo "<td>" . "<input type=text name=exam_date value=" . $record['exam_date'] . " </td>";
echo "<td>" . "<input type=hidden name=hidden value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=image name=update value=update id=submit src=images/update.png" . " </td>";
echo "<td>" . "<input type=image name=delete value=delete id=submit src=images/delete.png" . " </td>";
echo "</tr>";
echo "</form>";
}
echo "<form action=examisud.php method=post>";
echo "<tr>";
echo "<td><input type=text name=uexam_id></td>";
echo "<td><input type=text name=usubject></td>";
echo "<td><input type=text name=uexam_date></td>";
echo "<td>" . "<input type=image name=insert value=insert id=submit src=images/insert.png" . " </td>";
echo "</form>";
echo "</table>";
【问题讨论】:
-
只需在表单上放置任何隐藏字段,并检查代码中是否存在隐藏变量 - 如果存在,则表单已提交,否则为“首次访问”
-
Don't worry about SQL injections/mysql depreciation for now: 不必担心的不是我们,你会:)
标签: php validation loops field required