作者:sunhuan | 来源:互联网 | 2023-05-19 17:31
语句拿到数据库测试了可以查询到记录,这个是我做测试用的,$_POST改为了$_GET了,不知道为什么结果总是用户名或密码错误(未查到记录或记录为0)!请大家帮我检查检查<?phpses
语句拿到数据库测试了可以查询到记录,这个是我做测试用的,$_POST改为了$_GET了,不知道为什么结果总是用户名或密码错误(未查到记录或记录为0)!请大家帮我检查检查
session_start();
$respOnse=array();
$link = mysqli_connect('localhost','root','liwenban','myqq');
if (!$link) {
/*连接数据库服务失败*/
mysqli_query("set names 'utf8'");
printf("连接失败:%s",mysqli_connect_error);
mysqli_close($link);
}else{
/*判断是否提取到用户输入*/
if(isset($_GET['user_name'])&&isset($_GET['user_password'])){
$user_name=$_GET['user_name'];
$user_password=$_GET['user_password'];
/*判断数据库是否有该用户*/
$result=mysqli_query($link,"select * from testuser where user_name = '$user_name' and user_password = '$user_password'");
$num=mysqli_num_rows($result);
if($num>0){
$user = mysqli_fetch_array($result);
$_SESSION['user_name'] = $user['user_name'];
$_SESSION['user_password'] = $user['user_password'];
$response ['success'] = 1;
$response ['message'] = "welcome login!";
echo json_encode($response);
}else{
$response ['success'] = 0;
$response ['message'] = "wrong user name or password";
echo json_encode($response);
}
}
}
mysqli_close($link);
?>
7 个解决方案
登录密码属于个人隐私,不宜通过 url 参数传递(要用 post 表单)
请确认你的方案的正确性
既然查询语句没问题,那就是传过来的值有问题了,可以先把值打印出来看一下
在运行的时候有报错吗PHP?可以根据报错看下问题所在
$user_name=$_GET['user_name'];
$user_password=$_GET['user_password'];
把这两个打印出来看看是什么。
估计你是用了POST提交吧,
改为
$user_name=$_POST['user_name'];
$user_password=$_POST['user_password'];
试试,如果正常那就表示你用POST提交了。改get提交可以在表单设置method="GET";
不过提交用户名和密码建议使用post方式。