2017-08-16 28 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

相關問題