我已经按照上呼应PHP变量来表示不正确输入字段非常信的WC3教程。我不明白为什么这是行不通的。
我有一些奇怪的作用域问题:
tools.php:
if(!isset($_POST)){
$name_error = "";
}
if(isset($_POST) && !empty($_POST)){
$_SESSION['current'] = $_POST;
validateForm();
}
index.php文件:
<span class="error"><?php echo $name_error; ?></span>
tools.php:
function validateForm() {
$cust = $_SESSION['current']['cust'];
$usermovie = $_SESSION['current']['movie'];
$userseats = $_SESSION['current']['seats'];
if(!preg_match('/[a-zA-Z ]+/', $cust['name']) || empty($cust['name'])){
$name_error = "a-z only.";
echo $name_error;
} else{
$_SESSION['bookings'][] = $_SESSION['current'];
echo 'pass';
$name_error = "";
}
}
我知道这是打的功能和更新$ NAME_ERROR的价值,因为它从回声功能的正确值。同样,如果我手动设置的$ NAME_ERROR值的字符串时,它正确地显示在误差范围。的$ NAME_ERROR中跨度值不更新,当我刚刚提交表单/运行功能正常不过。
不必返回任何值。返回这样的$name_error
值:
if(!isset($_POST)){
$name_error = "";
}
if(isset($_POST) && !empty($_POST)){
$_SESSION['current'] = $_POST;
$name_error = validateForm();
}
function validateForm() {
$cust = $_SESSION['current']['cust'];
$usermovie = $_SESSION['current']['movie'];
$userseats = $_SESSION['current']['seats'];
if(!preg_match('/[a-zA-Z ]+/', $cust['name']) || empty($cust['name'])){
$name_error = "a-z only.";
} else{
$_SESSION['bookings'][] = $_SESSION['current'];
echo 'pass';
$name_error = "";
}
return $name_error;
}
工作了,申报所需
global $name_error;
在函数的开始 - 谁能给我一个方法里面的错误,虽然跨越了返回的各个功能的结果呢?我显然不能只调用它们的存在。