0

我有以下代码,但不幸的是,页面加载后,在单击提交之前会出现 $error。我究竟做错了什么?

(文件名= form.php)

<?php
$error="";
if (isset($_POST['submit']) && $_POST['submit'] == "Submit") {  

$name = $_POST['name'];
$email = $_POST['email'];

if($name=="" || $email==""){
$error .= "Error: all fields are required";
}
if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email)) {
$error .= "<br/> Error: Invalid email address";
}

if (isset($error) && ($error!=="")) {
    echo $error;
}
elseif (empty($error)){
    // this works no need to write here... send form.
    }
    }

echo<<<_END
<html><head><body>
<form method='post' action='form.php'>
<p>Name</p> <input type="text" name="name" value='$name'>
<p>Email</p> <input type="text" name="email" value='$email'>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="Clear">
</form>
</body>
</html>
_END;
?>
4

2 回答 2

1
if (isset($error) && (!$error=="")) {
echo $error;

}

如果设置了 $error 并且 $error 不等于任何内容 echo $error? 在第一行将 $error 初始化为 "" 时正在设置它,它等于 ""

刚注意到!在 if 的第二部分。照我下面的人说的做。

于 2012-10-07T10:13:09.683 回答
0

替换(!$error==""))($error!==""))

于 2012-10-07T10:11:17.380 回答