最近我正在使用 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</h3>");
mysql_select_db('fy') or die("<h3 style=\"color:red;\" align=\"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">LOGIN</a><br />
此时我的数据库完全是空的。我刚刚创建了包含所需列的数据库螺柱。现在的问题是,当我尝试使用我的注册页面进行注册时,它给出了我在 die 中指定的错误,即
"Sorry! Either email, usn or tel already exists!"
如果数据库中没有值,这怎么可能。在我提供的注册表中
action="register.php"
作为处理文件。我也尝试过 mysql_fetch_assoc() ,但我得到了同样的错误。任何帮助表示赞赏。谢谢。
最佳答案
您的第一个问题是,正如 John Conde 所说,您的代码容易受到 SQL 注入(inject)攻击。
你的第二个问题,并回答你的问题,可能是因为你有这个:
if (mysql_num_rows($error) > 0);
而不是这个:
if (mysql_num_rows($error) > 0)
关于php - php 中的唯一用户 ID 代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032495/