Уникальный код идентификатора пользователя в php не работает

Недавно я искал уникальную регистрацию имени пользователя, используя php.. Я наткнулся на кусок кода, который я показываю ниже:

<!--?php 
$fname=trim($_POST['fname']);
$lname=trim($_POST['lname']);
$email=trim($_POST['email']);
$usn=trim($_POST['usn']);
$dept=trim($_POST['dept']);
$pass=trim($_POST['pass']);
$tel=trim($_POST['tel']);

$dbh = mysql_connect('localhost', 'root','') or die("<h3 style=\"color:red;\" align=\"center\"-->SERVER ERROR");
mysql_select_db('fy') or die("<h3 color:red;\""="" center\""="">SERVER ERROR</h3>");

$error= mysql_query("SELECT * FROM stud WHERE email='$email' OR usn='$usn' OR tel='$tel'") or die (mysql_error()); 

if (mysql_num_rows($error) > 0);
{
 die ("Sorry! Either email, usn or tel already exists!");
}

$query="INSERT INTO stud (fname, lname, email, tel, usn, dept, pass) VALUES ('$fname', '$lname', '$email', '$tel', '$usn', '$dept', '$pass')";
mysql_query($query);
$query="INSERT INTO log VALUES ('$usn','$pass',0,0)";
mysql_query($query);
print("REGISTERED");



 ?>
 <a href="login.php" target="_blank">LOGIN</a>

В настоящий момент моя база данных полностью пуста. Я только что создал столбец базы данных с нужными столбцами. Теперь проблема в том, когда я пытаюсь зарегистрироваться на моей странице регистрации, она дает мне ошибку, указанную в уме, которая

"Sorry! Either email, usn or tel already exists!"

Как это возможно, если в базе данных нет значений. В регистрационной форме, которую я дал

action="register.php"

как файл обработки. Также я попытался с mysql_fetch_assoc(), но я получаю ту же ошибку. Любая помощь приветствуется. Спасибо.

1 ответ

Ваша первая проблема заключается в том, что, как утверждает Джон Конде, ваш код уязвим для атак SQL-инъекций.

Ваша вторая проблема и ответить на ваш вопрос, вероятно, потому, что у вас есть это:

if (mysql_num_rows($error) > 0);

вместо этого:

if (mysql_num_rows($error) > 0)

licensed under cc by-sa 3.0 with attribution.