我有一个允许用户“创建主题”的页面,打开提交此表单通过验证过程转到另一个表单,该过程将主题插入数据库并重定向回主页面。但是,如果没有填写所有字段,我希望我的验证页面“添加主题”显示错误消息。这是我的代码,请您告诉我在哪里需要添加此验证代码以通知用户填写所有字段:
// get data that sent from form
$topic=$_POST['topic'];
$detail=$_POST['detail'];
$name=$_POST['name'];
$email=$_POST['email'];
$datetime=date("d/m/y h:i:s"); //create date time
$sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
$result=mysql_query($sql);
if($result){
echo "Successful<BR>";
echo "<a href=main_forum.php>View your topic</a>";
}
else {
echo "ERROR";
}
mysql_close();
答案 0 :(得分:0)
您可以使用php GET请求将错误发送到主页面,然后显示它。
答案 1 :(得分:0)
我的建议是创建一个名为validation的独立php文件,并在验证文件中添加一个函数。当然你可以在同一个php文件中创建这个函数。如果您单独使用include语句将其放在页面上。此外,快速回复本身也很好,因为您可以轻松访问已发布的变量并已在页面上显示错误。否则,您必须在get,post或session中返回错误。如果一切都成功,您可以在回发后立即发布或重定向(可能是成功页面),如果出现错误,用户只会看到回发。
include_once("Validation.php");
如上所示。
validateNewTopic($topic, $detail, $name, $email, $datetime)
{
}
然后你可以使用if语句检查条件。如果您想要快速解决方案,可以创建一个变量来保存所有错误。
$Error = "<p class='errors'">;
if ($topic == "")
{
$Error+="topic is required";
}
if ($Error != "<p class='errors'">)
{
return $Error +"</p>";
}
else
{
return "";
}
由于您要发布值,您可以在回发上的变量中捕获它们以进行验证。
$topic = $POST['topic'];
$Error=validateNewTopic($topic);
if ($Error != "")
{
?>
echo $Error
<?php
}
else {
//run sql code and show success
}
通过将段落标记放在$ Error消息中,我们可以回显它,它已经在带有类错误的段落标记中。您可以使用无序列表以及使用列表项添加错误时使其更漂亮。我不确定你对php有多熟悉,但随时你可以通过关闭标签来停止编写php代码。 (&lt; php?&gt;并重新打开&lt;?php),如上面if语句中所示。我知道这不是100%明确,但这是你应该尝试/研究和实践的东西,因为它经常被使用。祝你好运!