目前我有一個表單我正在努力,我正在努力,所以電子郵件不會發布,除非它被首先驗證。我爲它的名字工作,但每當我嘗試做同樣的電子郵件時,它說'無效的電子郵件格式',不寫或發佈。PHP電子郵件表單驗證和寫入文件
這就是我的工作:
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Please type a real name";
}else{
$name = test_input($_POST["name"]);
//Record to file
$myfile = fopen("names.txt", "a");
$txt = $name . " ". $_SERVER["REMOTE_ADDR"] . "\r\n";
fwrite($myfile, $txt);
fclose($myfile);
}
}
這是我不能讓工作:
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}else{
$email = test_input($_POST["email"]);
}
}
每當我這樣做的電子郵件它會導致「無效的電子郵件格式」,甚至當我檢查確認它是正確的,並且它與if語句上面定義的$ email變量一起工作時。
如果您發現任何錯誤或任何可以解決此問題的方法,我們將不勝感激。
'$ email'分配後節省$電子郵件變量的值?我猜你應該在'filter_var('< - 。 – chris85
)使用'$ _POST [「email」]'是的,$ email被分配給$ name = $ email = $ gender = $ comment = $ website =「 「;在文檔的開頭,對不起,忘了包括它 –
我的意思是它被分配到後來的輸入值,例如'$ email = $ _POST [」email「];'? – chris85