php – 如何检查电子邮件地址是否存在.验证

我似乎无法弄清楚如何检查我的数据库中是否存在电子邮件.目前,用户使用他们的电子邮件地址使用密码登录我的网站,但目前用户可以使用相同的电子邮件地址多次注册,这会导致我的网站出现重大问题.做过一些研究,但似乎无法解决.

有谁能够帮我?

<?php       

if(isset($_POST['add']))
{
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$db = "db";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not send your enquiry at this time please try again later.');
}


$phone = mysql_real_escape_string((string)$_POST['phone']);
$email = mysql_real_escape_string((string)$_POST['email']);
$password = mysql_real_escape_string((string)$_POST['password']);
$firstname = mysql_real_escape_string((string)$_POST['firstname']);
$surname = mysql_real_escape_string((string)$_POST['surname']);
$country = mysql_real_escape_string((string)$_POST['country']);
$nationality = mysql_real_escape_string((string)$_POST['nationality']);
$yearofbirth = mysql_real_escape_string((string)$_POST['yearofbirth']);  
$profession = mysql_real_escape_string((string)$_POST['profession']); 
$status = mysql_real_escape_string((string)$_POST['status']); 
$membertype = 'Registered';
$dateregistered = mysql_real_escape_string((string)$_POST['dateregistered']); 
$agreedtoterms = mysql_real_escape_string((string)$_POST['agreedtoterms']); 

$sql = "INSERT INTO members
       (phone, email, password, firstname, surname, country, nationality, yearofbirth, profession, uniquepin, status, membertype, dateregistered, agreedtoterms)
       VALUES('$phone', '$email', '$password', '$firstname','$surname','$country','$nationality','$yearofbirth','$profession','$uniquepin','$status','$membertype','$dateregistered', '$agreedtoterms')";


mysql_select_db($db);
$retval = mysql_query( $sql, $conn )or die(mysql_error());

?>

解决方法:

您可以使电子邮件列具有唯一约束 – 然后在尝试插入时查询将失败.

你也可以查询它….

SELECT `email`
  FROM `members`
 WHERE `email` = '$email'
 LIMIT 1

如果您得到结果,则电子邮件存在.

上一篇:php – 注册表 – 上传图片


下一篇:php – 使用电子邮件链接中的代码验证用户帐户