J'ai mis mes champs de base de données "nom d'utilisateur" et "email" à unquie, en utilisant le code ci-dessous cela ne fonctionne que si le "nom d'utilisateur" existe déjà, une erreur est alors répercutée. Si l'email existe, l'utilisateur reçoit une erreur de doublon mysql, quand la même erreur que ci-dessus devrait être montrée.dupliquer les entrées mysql et 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>";
}
?
Merci
Veuillez modifier votre code afin qu'il ne soit pas trop vulnérable à l'injection SQL. Voir ce sujet, entre autres. http://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks – Kibbee