PHP验证用户登录..好简单的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:22:54
我有一个表..里面有3个字段.分别为:id,admin,password

我想通过用户提交的数据进行判断..如果正确那么就能登录..

不正确就不能登录...谁能帮我?可以用百度HI我.
问题已经解决~
$user=$_POST['user'];

$password=$_POST['password'];

if($user && $password){
$sql = "SELECT * FROM admin WHERE admin='$user' and password='$password'";
$query = mysql_query($sql);
$rows=mysql_num_rows($query);
if($rows){
echo "登录成功";
}else{
echo "登录失败";
}
}

$user=$_POST['user'];
$password=$_POST['password'];
$sql = "SELECT * FROM admin WHERE admin='$user' and password='$password'";

你这样可不太好哦~

因为密码可能有各种各样的符号,当密码里面有但引号的时候,登录会出现程序错误,例如$password的值为"ABC'DEF"的时候,你的SQL语句是:
"SELECT * FROM admin WHERE admin='admin' and password='ABC'DEF"

而且,如果别人想登录admin用户,只需要输入这样的密码就可以了:
123' or '1'='1
因为这时候你的SQL语句是:
"SELECT * FROM admin WHERE admin='admin' and password='123' or '1'='1'"

应该修改为:

$user=$_POST['user'];
$password=$_POST['password'];
if($user && $password){
if (strpos($user,"'")!==false) echo '用户名非法';
else {
$sql = "SELECT password FROM admin WHERE admin='$user'";
$query = mysql_query($sql);
$rows=mysql_fetch_array($query);<