HTML表单可以工作,但需要php验证


HTML form working but need a php validation

我需要帮助。我需要做什么来验证此表单中的电子邮件?这是一个登录页,我想在访问者访问我的内容之前收到他的电子邮件。这里是这个演示。

我可以得到一些提示或正确的代码来使用这个页面吗?

<form id="contact-form" action="send.php">
<input type="text" name="email" placeholder="you@yourmail.com" class="cform-text" size="40" title="your email" required>
<input type="submit" value="Enter Now" class="cform-submit">
</form>

send.php文件:

$visitorEmail = $_GET['email'];
$email_from = "doctordongok@gmail.com";
$email_subject = "New Form Submission! - From: " + $visitorEmail;
// edit here
$email_body = "New visitor - $visitorEmail";    
$to = "doctordongok@gmail.com";
$headers = "From: $email_from 'r 'n";
$headers .= "Reply-To: $visitorEmail 'r 'n";    
mail($to, $email_subject, $email_body, $headers);
header("Location: http://www.de-signs.com.au");

谢谢!

使用PHP的filter_var()函数:

if(filter_var($visitorEmail, FILTER_VALIDATE_EMAIL) === false) {
    // Invalid E-Mail address
} else {
    // OK
}

所以来模拟你的新剧本。它看起来像这个

$visitorEmail = $_GET['email'];
if(filter_var($visitorEmail, FILTER_VALIDATE_EMAIL) === false) {
    die('Sorry that''s no valid e-mail address');
} else {
    $email_from = 'doctordongok@gmail.com';
    $email_subject = 'New Form Submission! - From: ' . $visitorEmail;
    // edit here
    $email_body = 'New visitor - ' . $visitorEmail;    
    $to = 'doctordongok@gmail.com';
    $headers = 'From: $email_from' . PHP_EOL;
    $headers .= 'Reply-To: $visitorEmail' . PHP_EOL;    
    mail($to, $email_subject, $email_body, $headers);
    header('Location: http://www.de-signs.com.au');
    exit;
}

您的最佳选择可能是在客户端使用Javascript进行验证,在服务器端使用正则表达式进行验证。

使用Javascript 验证电子邮件

HTML5新的email输入类型将为您提供帮助。

<input type="email" name="email" placeholder="you@yourmail.com" class="cform-text" size="40" title="your email" required />