我是 PHP 新手,并尝试编写一些代码来验证同一页面上的表单,然后再将帖子提交到数据库。
我想要的是代码;
- 询问是否已填写任何字段
- 如果是,请检查是否有任何字段为空(如此输出消息)
- 如果每次将任何错误添加到数组时,都需要对数据进行一系列验证检查。
- 最后问一下有没有发现错误
- 如果不将数据插入数据库(这段代码已编写但未显示在我在下面提供的代码中。
所以这是我的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
if(isset($_POST['title']) || isset($_POST['content']) || isset($_POST['comment_option']));
{
$title = $_POST['title'];
$content = $_POST['content'];
$comment_option = $_POST['comment_option'];
$form_errors = array();
if (empty($title) || empty($content) || empty($comment_option))
{
$form_errors[] = "All fields are required!";
} else {
if (strlen($title < 3)){
$form_errors[] = "The title is too short!";
}
if (strlen($title > 50)){
$form_errors[] = "The title is too long!";
}
if (strlen($content < 50)){
$form_errors[] = "Post is a bit short!";
}
}
if(!empty($form_errors)) {
print_r($form_errors);
}else{
//insert data into database
}
}
?>
<form action="add_post.php" method="post">
Title: <input type="text" name="title"><br>
Content: <input type="text" name="content"><br>
Comments enabled?<br>
<input type="radio" name="comment_option" value="true">Yes<br>
<input type="radio" name="comment_option" value="false">No<br>
<input type="submit">
</form>
<body>
</body>
</html>
当我加载页面时,在我设置 $title $content 和 $comment_option 变量的行上出现三个未定义索引的错误。如果我只是点击提交,那么我只会在我设置 $comment_option 变量的那一行得到一个错误,但我确实看到“所有字段都是必需的”。如果未填写任何字段,我也会看到此错误,因此这部分有效。
如果所有字段均已填写。无论长度如何,我总是看到“标题太短”和“博客文章有点短”,即使它们不是……
我花了一段时间看这个,只是无法弄清楚我做错了什么!
任何帮助将非常感激!!
谢谢,马克斯