我认为我知道如何使用数组,直到我开始在其中存储填充错误。所以情况就是这样:我想在PHP文档的开头声明一个数组。然后在整个文档中进行验证,并且在每次验证时,如果应该产生错误,则数组将填充错误。然后在文档的最后我想将这些错误回显到页面上的特定错误。所以这就是我现在所拥有的:
$errors = array();//declares array
if(/*some qualifier*/) {//username validation
} else {
$errors[] = "<p>Please enter a valid username</p>";
}
if(/*some qualifier*/) {//email validation
} else {
$errors[] = "<p>Please enter a valid email</p>";
}
echo '<div id="errors">';//errors div
foreach ($errors as $value) {//fills error div with the errors LINE 60
echo "$value<br />\n";
}
echo '</div>';
那么......那有什么问题?我一直收到一个错误,即错误是一个未定义的变量,当它试图回应错误时。
评论中给出的错误:
第160行的脚本“文件路径”发生错误:未定义的变量:错误
更新:在我的代码中看起来像是一个奇怪的问题。如果您想查看217行代码,请输入以下代码:http://pastebin.com/YkERYpeF
答案 0 :(得分:2)
我见过你的代码。你只在条件中声明$ errors:
//if the user has registered
if (isset($_POST['submitted'])) {
require_once (MYSQL); //gets the database connection
$errors = array(); // declares the errors array that will be printed at end of validation if needed
PHP数组效果很好。您在条件范围中声明变量并在全局范围内使用它们。 PHP无法想象您想在全局范围内使用该变量。
您也应该缩进代码,但是您可以在$errors
下面完美地定义$bodyId
,PHP不会再抱怨了。
答案 1 :(得分:1)
你的一个验证块中的某些东西可能是出于自身目的而使用$ errors,某些函数在某处使用global $errors
,或者其他东西以其他方式搞砸了。
我发现追踪这种事情的最快方法是在中间某处插入变量检查,并基本上对代码进行二进制搜索,直到找到变量重置的位置。