我有两页,第1页包含这样的数组:
$error=array();
$error[]='First value';
$error[]='Second value';
$error[]='Third value';
第2页是我使用这些数组值的地方:
include 'page1.php';
echo '<p>'.$error[0].'</p>';
echo '<p>'.$error[1].'</p>';
echo '<p>'.$error[2].'</p>';
它应该可以工作,但它会不断显示错误:
Notice: Undefined offset: 0
Notice: Undefined offset: 1
Notice: Undefined offset: 2
有什么想法吗?
答案 0 :(得分:1)
根据您更新的问题,它显示
$error=array();
if( !empty($_POST['email']) && isset($_POST['email']) ){
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error[] = 'Emailul nu este valid!';
}else{ $email=$_POST['email']; }
}else{ $error[]='Utilizatorul este obligatoriu!'; }
在包含的文件中,您应该通过执行var_dumps
来检查条件逻辑 var_dump($_POST)
并查找“电子邮件”索引。
也许“电子邮件”存在的条件不满意!
已编辑,正在显示以下内容......
通常你会发现使用foreach循环不太容易出错。
foreach($error as $err) {
echo '<p>'.$err.'</p>';
}
此外,您可以尝试使用代替include file.php
,使用require('file.php')
甚至require_once('file.php')
答案 1 :(得分:0)
除了你发生的事情,你应该做一个多维关联数组,所以错误是这样的类别:
$error['email'][] = 'error text';
$error['rparola'][] = 'error text';
让您的$error
报告有条件:
if(isset($error['email'])) { do stuff }
答案 2 :(得分:0)
您的代码中有语法错误,这就是您遇到错误的原因。 我试着成为你的调试器,试一试。刚刚修改了你的代码。
echo '<td><input type=text name=email placeholder=Email value=</td>';
if(!empty($_POST['email']))
echo $_POST['email'];
echo '<td>'.$error[1].$error[2].'</td>'; //Problem is here
$error=array();
if( !empty($_POST['email']) && isset($_POST['email']) ){
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error[] = 'Emailul nu este valid!';
}else{ $email=$_POST['email']; }
}else{ $error[]='Utilizatorul este obligatoriu!'; }
//问题是这里索引3上的$ error [3]元素尚未分配。