2017-08-16 2 views
1

habe ich diesen Code und ich weiß nicht, was das Problem ist und ich verschiedene Codes verwenden auchWie vermeidet man doppelte E-Mails PHP/SQL?

, was ich will dem Benutzer zu überprüfen und nicht zulassen, dass tun, um seine E-Mail zweimal

<?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

Welche Datenbank Sie verwenden –

+1

Sie Logik scheint in Ordnung, was exactely ist zu sichern und schützen machen funktioniert nicht mit diesem Code? Übrigens, Sie sind weit offen für SQL-Injection, lesen Sie weiter. :) – xander

+0

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

Antwort

0

abgefragt zu werden Dank für Unterstützung fand ich, was mit mir gearbeitet hat, bitte den nachfolgenden Code und bitte teilen Sie mir finden, wie sie es von SQL-Injection

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
hinzufügen

das Problem ist, dass Sie keine Verbindung zum mysql_query sind vorbei

somit werden die Abfragen nicht

$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

Hallo, Vielen Dank für Ihre Hilfe, aber ich bin immer noch leere Seite bekommen $ result = mysqli_query ($ conn, "SELECT * FROM users WHERE email = '$ email'") oder Ausgang (mysqli_error()) ; $ num_rows = mysqli_num_rows ($ result); if ($ num_rows == 0) { $ sql = "EINFÜGEN IN Benutzer (Name, E-Mail, Telefon, Geschenk, Formularname, FormularEmail, FormularEmi, Geburtstag, Datum) VALUES ('$ name', '$ email', '$ tel', '$ gift', '$ formName', '$ formEmail', '$ formEmirate', '$ birthday', CURRENT_TIMESTAMP) "; if (! Mysqli_query ($ conn, $ sql)) { sterben ('Fehler:'. Mysqli_error()); } } – developer91

Verwandte Themen