[英]PHP Required fields (No HTML)
因此,我需要有关必填字段的帮助。 填写PHP表单时,我希望3个字段(exam_id,subject,exam_date)是必填字段。 因此,当单击插入按钮时,如果将一个字段留空并且将显示错误,否则除非完成每个字段的填写,否则操作将无法完成。我正在使用所有php,没有HTML,也没有,我不想重做我的表单作为HTML调用php,我想要这样。 也没有安全问题,这只是一个简单的项目。 我的代码:
<?php
echo '<link rel="stylesheet" type="text/css" href="css/tables.css" />';
$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("StudentExams", $con);
if (isset($_POST['update']))
{
$UpdateQuery = "UPDATE Exam SET exam_id='$_POST[exam_id]', subject='$_POST[subject]', exam_date='$_POST[exam_date]' WHERE exam_id='$_POST[hidden]'";
mysql_query($UpdateQuery, $con);
};
if (isset($_POST['delete']))
{
$DeleteQuery = "DELETE FROM Exam WHERE exam_id='$_POST[hidden]'";
mysql_query($DeleteQuery, $con);
};
if (isset($_POST['insert']))
{
$InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('$_POST[uexam_id]','$_POST[usubject]','$_POST[uexam_date]')";
mysql_query($InsertQuery, $con);
};
$sql = "SELECT * FROM Exam";
$Data = mysql_query($sql,$con);
echo "<table id='size' border='1'>
<tr>
<th>Exam_ID</th>
<th>Subject</th>
<th>Exam_Date</th>
</tr>";
while($record = mysql_fetch_array($Data))
{
echo "<form action=examisud.php method=post>";
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>";
echo "<a href='ExamForm.html'> Back to main page </a>";
mysql_close($con);
?>
预先感谢任何可以帮助我的人! 我觉得我缺少一个非常简单的解决方案,或者由于缺少通用HTML表单而感到非常困惑。
只需在isset
的顶部进行检查
if(!isset($_POST['exam_id'],$_POST['subject'],$_POST['exam_date']))
{
echo "These fields are required ! Please fill it up";
header("location:backtoform.php");exit;
}
警告 :由于将$_POST
参数直接传递到查询中,因此容易受到SQL注入攻击。
从PHP 5.5.0
不推荐使用此( mysql_*
)扩展名,以后将删除该扩展名。 相反,应使用MySQLi
或PDO_MySQL
扩展。 改用PreparedStatements
更好地抵御SQL注入攻击!
isset( ... )
仅用于查看是否设置了字段。 不管该字段的值是否为空。
您需要改用empty( .. )
。 仅当字段已设置且不为空时,它才会返回true。 与一个射击的两个苹果。
在所有if语句中,使用!empty。 维护一个$error
变量并将其初始化为FALSE。 每当发生错误时,请将$ error设置为TRUE。 最后,仅在$error == FALSE
时执行所需的操作。
$error = false;
if ( !empty($_POST['update'] ){
// stuff
}
else {
// display error message
$error=true;
}
if(!$error){
// operations
}
这样,您可以将验证与操作巧妙地分开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.