我有以下代码,但不幸的是,在点击提交之前,一旦页面加载就会出现$ error。我做错了什么?
(filename = 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;
?>
答案 0 :(得分:1)
if (isset($error) && (!$error=="")) {
echo $error;
}
如果设置了$ error并且$ error等于没有echo $ error? 当你在第一行中将它初始化为“”并且它等于“”
时,会设置$ error注意到了!在if的第二部分。做我下面的人说的话。
答案 1 :(得分:0)
将(!$error==""))
替换为($error!==""))
。