PHP 登录验证,验证密码的正确与否

<?php
session_start();
require_once 'conn.php';

$number=$_POST['number'];
$password=$_POST['password'];

if ($number!="" && $password!=""){
$conn=db_connect();
$query="select * from administrator where number='".$number."' and password=md5('".$password."')";
$result=mysqli_query($conn, $query);
if (empty($result)){
echo "alert(&#39;账号或密码错误,请重试!&#39;);<br> location =&#39;mnglogin.html&#39;;";
}else {
echo "alert(&#39;登录成功!&#39;);<br> location =&#39;administrator.php&#39;;";

    $_SESSION['user']=$number;//在会话中注册当前用户
    $psid=session_id();//获取当前会话的session id
    $fp=fopen("./files/adminsid.txt", "w++");//建立文件连接
    fwrite($fp, $psid);//把session id写入文件
    fclose($fp);//关闭文件连接
}   

}else {
echo "alert(&#39;账号或密码不能为空,请重试!&#39;);<br> location =&#39;mnglogin.html&#39;;";
}

?>
代码如上,不知道为什么,登录时不管输入什么密码,结果都是登陆成功。请各位大神帮帮忙,我初学PHP是在找不到问题在哪!

3个回答

把if (empty($result))改成if (mysql_num_rows($result) < 1)试试看

xywccr
xywccr 还是不行。之前改了用“if($result->num_rows==0)”代替也不行。
4 年多之前 回复

你要看看手册 mysqli_query 返回的类型 ,再看看 empty()怎么用。结果我就不说了,自己动手对你有好处

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐