我正在处理即将推出的页面。在页面上,我要求用户通过一个表单使用他们的电子邮件进行注册,然后通过电子邮件将他们的电子邮件发送给我。我不确定如何确保他们放入表单的数据是电子邮件(以防止垃圾邮件)。有什么帮助吗?谢谢。
7 回答
使用 jquery validate 真的好用http://docs.jquery.com/Plugins/Validation
user following code as primary step to validate the email input
if(document.getElementById('Email').value=="")
{
document.getElementById('Email_Msg').innerHTML="Please Enter EmailId";
document.getElementById('Email').focus()
return false;
}
else
{
if(document.getElementById('Email').value.match(/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}$/))
{
document.getElementById('Email_Msg').innerHTML="";
}
else
{
document.getElementById('Email_Msg').innerHTML="Enter Valid Email-Id";
return false;
document.getElementById('Email').value="";
}
}
您不应依赖客户端验证来阻止垃圾邮件和其他不需要的注册。尽管您可以使用 jQuery validate 使站点对访问者更加 UI 友好,但向他们提供一个简洁的消息,表明输入的电子邮件地址无效,并且他们应该查看该字段。
但是垃圾邮件机器人不会关心来自 jQuery 的验证,它只会发布给定的字段。这就是为什么您需要在服务器端验证数据的原因。
有几种使用正则表达式验证电子邮件地址的方法,但并非所有方法都是可靠的。查看http://www.linuxjournal.com/article/9585这篇文章解释了很多。
客户端 js 是不够的,你还应该使用 PHP 的filter_var进行验证:
<?php
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$from=$_POST['email'];
}else{
$error['email_to']='Email Invalid!';
}
?>
只需对您的电子邮件进行单行验证。代码可以写成如下。
<?php
if(empty($_POST['email']))
{
$error[]="Enter Email ID";
}
else
{
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$error[]= "Not A Valid Email ID.";
}
}
//pass these errors to display ana error message to user.
foreach($error as $i)
{
$message = $i."<br />";
}
?>
在您的网页中的某个位置使用此代码。
<?php
echo $message;
?>
另外使用邮件功能和mysql数据库(或其他,如果你正在使用)发送邮件来验证他们的电子邮件ID。您可以阻止不需要的用户注册。并且还使用验证码来防止数据库泛滥。
我认为这有帮助。如果有任何疑问在这里回复。
如果您想防止垃圾邮件,仅确保电子邮件字段填写有电子邮件字段是不够的。考虑使用像ReCaptcha这样的验证码
使用 php gd2 库创建您自己的验证码。它既简单又高效。