Ich habe meine Datenbankfelder "Benutzername" und "E-Mail" zu Unquie gesetzt, wenn der Code unten verwendet, funktioniert das nur, wenn der "Benutzername" bereits existiert, ein Fehler wird dann wiederholt. Wenn eine E-Mail existiert, erhält der Benutzer einen mysql-Duplikatfehler, wenn der gleiche Fehler wie oben angezeigt wird.doppelte Einträge mysql und php
<?php
require_once ('connection.php');
$username=$_POST['username'];
$password=md5($_POST['password']);
$email=($_POST['email']);
$ip=$_SERVER['REMOTE_ADDR'];
session_start();
$query = "INSERT INTO users (username, password, email, rank, ip, active) VALUES ('$username','$password', '$email', '1', '$ip', '0')";
$sql = "SELECT username AND email FROM users WHERE username = '$username' AND email = '$email'" ;
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row = mysql_fetch_array($result);
if ($count== 0)
{
if (!mysql_query($query))
{
die('Error: ' . mysql_error());
}
echo "You are signed up, please follow the link on your email to active your account.";
}
else
{
echo "Username or Email already exists"."<br><a href=\"sign_up.php\">Try Again</a></br>";
}
?
Dank
Bitte ändern Sie Ihren Code, so dass es nicht so anfällig für SQL-Injektion ist. Siehe dieses Thema unter anderem. http://stackoverflow.com/questions/1973/what-ist-best-way-to-avoid-sql-injectionattacks – Kibbee