首先,我想为您提供一个检查电子邮件地址域是否存在的功能,然后我将尝试找出任一用户之前是否已注册的验证过程,并参考链接checkdnsrr().
我的答案分为三部分
-
验证域是否存在
-
客户端验证可以通过jquery或html5完成
- 要注册的唯一电子邮件地址
第 1 部分
用几个不同的域名试试这个功能。这段代码对我有用,我希望 wi
function validate_email($email="zazikhan1@wowowowowowowowoowoowowowo.com"){
$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(stristr($exp,$email)){
if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
echo 'good to go';
}else{
echo 'domain cant be verified';
}
}else{
echo 'sorry regular expression does not match';
}
}
第 2 部分
如果你想通过 jquery 做到这一点,请访问 jquery rain 并选择你喜欢的插件,但如果你喜欢 html5 中的插件,只需简单地
<input type="email" id="email" name="email" required>
在 html5 中,电子邮件将通过查看@ 登录来自动验证任一用户是否已发送电子邮件。
required 标签只会看到任一用户在继续下一步之前已填写完整的电子邮件字段。
第三部分
这是不注册那些已经注册的电子邮件的代码。
function subscriber()
{
$subscriber=$this->input->post('subscriber');
$query=$this->cartmodel->get_record('subscriber',array('email'=>$subscriber));
if($query)
{
$this->session->set_flashdata('error', '<script type="text/javascript">alert("you are already registered with us")</script>');
redirect('views');
}
else
{
$data=array('email'=>$this->input->post('subscriber'));
$this->cartmodel->insert_data('subscriber',$data);
$this->session->set_flashdata('error', '<script type="text/javascript">alert("you have sucessfully subscribed with us")</script>');
redirect('views');
}
}