我有一个页面,该页面允许用户“创建主题”,打开该表单,然后通过验证过程将表单转到另一个页面,该过程将主题插入数据库中,然后重定向回主页。但是,如果所有字段都未填写,我希望我的验证页面“添加主题”显示一条错误消息。这是我的代码,请告诉我在哪里需要添加此验证代码以通知用户填写所有内容领域:

// 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();

最佳答案

我的建议是创建一个单独的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代码。 (并重新打开
09-30 14:28
查看更多