2017-08-16 53 views
1

我用这个代码,我不知道是什么问题,我使用了不同的代码以及如何避免重复的电子邮件php/sql?

什么我想要做的检查,不允许用户添加他的邮件两次

<?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"); 

?> 
+0

的数据库您使用 –

+1

你的逻辑似乎很动听,什么exactely是不使用该代码?顺便说一下,你可以开放SQL注入,请阅读。 :) – xander

+0

'if($ num_rows == 0){...} else {$ sql =“UPDATE ...”} –

回答

0

感谢支持我找到了曾与我一起工作,请看看下面的代码,请告诉我如何,以确保安全并保护其免受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> 
1

问题是你不能传递任何连接请求mysql_query

这样的疑问没有得到查询

$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()); 
    } 
} 
+0

嗨,感谢您的帮助,但仍然得到空白页 $ result = mysqli_query($ conn,“SELECT * FROM users WHERE email ='$ email'”)或exit(mysqli_error()) ; $ num_rows = mysqli_num_rows($ result); 如果($ num_rows == 0){ $ sql =“INSERT INTO用户(名称,电子邮件,电话,礼物,formName,formEmail,formEmirate,生日,日期) VALUES('$ name','$ email', '$ tel','$ gift','$ formName','$ formEmail','$ formEmirate','$ birthday',CURRENT_TIMESTAMP)“;如果(!mysqli_query($ conn,$ sql)) { die('Error:'。mysqli_error()); } } – developer91