目前我有一个表单我正在努力,我正在努力,所以电子邮件不会发布,除非它被首先验证。我为它的名字工作,但每当我尝试做同样的电子邮件时,它说'无效的电子邮件格式',不写或发布。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