"Kullanıcı adı" ve "e-posta" veritabanı alanlarını belirsiz bırakmak için ayarladım, bunun altında aşağıdaki kodu kullanırken sadece "kullanıcı adı" zaten mevcutsa, bir hata daha sonra yankılanır. E-posta mevcutsa, yukarıdaki gibi aynı hata gösterildiğinde, kullanıcı bir mysql yinelenen hatası alır.yinelenen girişler mysql ve 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>";
}
?
Teşekkür
Lütfen kodunuzu değiştirin, böylece sql enjeksiyonuna karşı savunmasız değildir. Diğerleri arasında bu konuya bakın. http://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks – Kibbee