0

私は次のコードを持っていますが、残念ながら、ページが読み込まれるとすぐに、送信をクリックする前に$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;
?>
4

2 に答える 2

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

}

$ errorが設定されていて、$errorが何にも等しくない場合は$errorをエコーし​​ますか?$ errorは、最初の行で「」に初期化したときに設定されており、「」と同じです。

気づいた!ifの2番目の部分で。私の下の人が言ったことをしなさい。

于 2012-10-07T10:13:09.683 に答える
0

に置き換え(!$error==""))ます($error!==""))

于 2012-10-07T10:11:17.380 に答える