如何避免重复的电子邮件php/sql?

如何避免重复的电子邮件php/sql?,php,mysql,sql-server,mamp,Php,Mysql,Sql Server,Mamp,我使用了这个代码,我不知道是什么问题,我也使用了不同的代码 我想做什么来检查和不允许用户添加他的电子邮件两次 <?php include("includedb.php"); //declare variables $name = $_POST['name']; $email = $_POST['email']; $tel = $_POST['tel']; $gift = $_POST['gift']; $formName = $

我使用了这个代码,我不知道是什么问题,我也使用了不同的代码

我想做什么来检查和不允许用户添加他的电子邮件两次

<?php
include("includedb.php");
//declare variables
$name        = $_POST['name'];
$email       = $_POST['email'];
$tel         = $_POST['tel'];
$gift        = $_POST['gift'];
$formName    = $_POST['formName'];
$formEmail   = $_POST['formEmail'];
$formEmirate = $_POST['formEmirate'];
$birthday    = $_POST['birthday'];
$date        = $_POST['date'];

$result = mysqli_query("SELECT * FROM  users WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates

$num_rows = mysqli_num_rows($result); //number of rows where duplicates exist

if ($num_rows == 0) { //if there are no duplicates...insert
    $sql = "INSERT INTO users (name, email, tel, gift, formName, formEmail, formEmirate, birthday, date)
VALUES ('$name', '$email', '$tel','$gift', '$formName', '$formEmail', '$formEmirate','$birthday',CURRENT_TIMESTAMP )";
    if (!mysqli_query($sql)) {
        die('Error: ' . mysqli_error());
    }
}

mysqli_close();

header("location: thank-you.html?remarks=success");

?>

问题是您没有向mysql\u查询传递任何连接

因此,查询不会被查询

$conn = your connection;

$result = mysqli_query($conn,"SELECT * FROM  users WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates
$num_rows = mysqli_num_rows($result); //number of rows where duplicates exist
if($num_rows == 0) { //if there are no duplicates...insert
$sql = "INSERT INTO users (name, email, tel, gift, formName, formEmail, formEmirate, birthday, date)
VALUES ('$name', '$email', '$tel','$gift', '$formName', '$formEmail', '$formEmirate','$birthday',CURRENT_TIMESTAMP )";
if (!mysqli_query($conn,$sql))
  {
  die('Error: ' . mysqli_error());
  }
}

感谢您的支持,我找到了与我一起工作的代码。请查找下面的代码,并建议我如何使其安全并防止sql注入

if(isset($_POST['submit'])){
$name= $_POST['name'];
$email= $_POST['email'];


$result = mysqli_query($conn,"SELECT * FROM  test WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates
$num_rows = mysqli_num_rows($result); //number of rows where duplicates exist

 if(($num_rows) > 0){
     echo "A record already exists."; 
     exit;
    }

else{
$sql = "INSERT INTO test (name, email)
VALUES ('$name', '$email')";
if (!mysqli_query($conn,$sql))
  {
  die('Error: ' . mysqli_error());
  }
}

if($result) {

          header("Location: game.html");

}else{ echo "Not Successful"; }

mysqli_close();
}
?>

<!DOCTYPE html>
<head>

</head>
<body>

<h2>Enter your Name and Email</h2>
<form method="post">
    <p><strong>First Name:</strong><br /> <input type="text" name="name" /></p>
    <p><strong>email:</strong><br /> <input type="email" name="email"/></p>

    <input type="submit" name="submit" value="Add Customer" />
</form>



</body>
</html>
if(isset($\u POST['submit'])){
$name=$_POST['name'];
$email=$_POST['email'];
$result=mysqli_query($conn,“SELECT*FROM test WHERE email='$email')或exit(mysqli_error());//检查重复项
$num_rows=mysqli_num_rows($result);//存在重复项的行数
如果($num_行)>0){
echo“记录已存在。”;
出口
}
否则{
$sql=“插入测试(名称、电子邮件)
值('$name','$email')”;
if(!mysqli_query($conn,$sql))
{
die('Error:'.mysqli_Error());
}
}
如果($结果){
标题(“Location:game.html”);
}否则{echo“未成功”;}
mysqli_close();
}
?>
输入您的姓名和电子邮件
名字:

电子邮件:


您使用的是哪一个数据库您的逻辑似乎很好,到底是什么不适用于该代码?顺便说一下,您对SQL注入非常开放,请仔细阅读:
if($num_rows==0){…}else{$sql=“UPDATE…”
im获得空白页面,并且我正在使用sql数据库Hi,感谢您的帮助,但我仍然获得空白页面$result=mysqli_查询($conn,“SELECT*FROM users WHERE email='$email'))或退出(mysqli_error())$num_rows=mysqli_num_rows($result);if($num_rows==0){$sql=“插入到用户(姓名、电子邮件、电话、礼品、formName、formEmail、formEmirate、生日、日期)值(“$name”、“$email”、“$tel”、“$gift”、“$formName”、“$formEmail”、“$formEmirate”、“$Birth”、当前时间戳)”;if(!mysqli_查询($conn、$sql)){die('Error:'.mysqli_Error())}