我做了这个php代码
<?php
if (!isset($_GET['id']) or !is_numeric($_GET['id'])) {
header('Location: index.php');
} else {
extract($_GET);
$id = strip_tags($id);
require_once 'config/functions.php';
$errors = array();
if (!empty($_POST)) {
extract($_POST);
$author = strip_tags($author);
$comment = strip_tags($comment);
if (empty($author)) {
$errors = array_push($errors, 'Entre a nickname');
}
if (empty($comment)) {
$errors = array_push($errors, 'Entre a comment');
}
var_dump($comment);
var_dump($author);
var_dump($errors);
if (count($errors) == 0) {
$comment = addComment($id, $author, $comment);
$sucess = 'Your comment has been sent';
unset($author);
unset($comment);
}
}
$article = getArticle($id);
$comments = getComments($id);
}
但是,当我提交表单时,我看到每次提交都成功,因此我决定转储变量$ errors,$ comment和$ author来尝试解决问题。在这里,无论什么为空,数组$ errors都会出错。我尝试不发表评论或作者,甚至不发表评论,但仍然无法正常工作。
您能帮我解决这个问题吗,因为我真的不知道它来自哪里吗?
答案 0 :(得分:0)
在PHP array_push()
中,该函数允许您将多个元素推入数组,并且该函数的结果是所添加元素的数量。数组本身在第一个参数中作为引用传递。
但是,您不需要调用此函数。
注意:如果您使用
array_push()
向数组中添加一个元素,则最好使用$array[] =
,因为这样可以无需调用函数。
您可以只使用array append operator
if(!$comment) {
$errors[] = 'Entre a comment';
}
关于无关的注释,您永远不要信任用户的输入。不要extract()
或$_GET
或$_POST
超全局变量!