如何避免重复的电子邮件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())}