php - 此 php 登录代码始终不返回任何内容
问题描述
操作文件
function userLogin($username,$pass){
$password = md5($pass);
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss",$username, $password);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
function getUserByUsername($username){
$stmt = $this->con->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s",$username);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
用户登录文件
require_once('../includes/DbOperations.php');
$response = array();
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if (isset($_POST['username']) and isset($_POST['password'])) {
$db = new DbOperations();
if ($db->userLogin($_POST['username'], $_POST['password'])) {
$user = $db->getUserByUsername($_POST['username']);
$response['error'] = false;
$response['id'] = $user['id'];
$response['email'] = $user['email'];
$response['username'] = $user['username'];
}else{
$response['error'] = true;
$response['message'] = "Invalid username or password";
}
}else{
$response['error'] = true;
$response['message'] = "Required fields are missing";
}
}
解决方案
使用下面的代码
function userLogin($username,$pass){
$password = md5($pass);
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss",$uname, $pwd);
$uname = $username;
$pwd = $password;
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
function getUserByUsername($username){
$stmt = $this->con->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s",$uname);
$uname = $username;
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
推荐阅读
- rx-swift - 无法推断通用参数“元素”?
- django - 使用 Nginx 和 Gunicorn 在 Django 中出现奇怪的 CSRF 错误
- vb.net - 具有不同前景色的列表框项
- python - Scrapy - NameError:未定义全局名称'logger'
- java - 如何在活动二(android)中更改活动一中传递的对象的值
- jquery - getJson 不返回文件内容
- php - php sql 服务器连接失败
- c# - 为 ITextSharp 格式化 HTML
- c# - 如何在不下载文件的情况下根据文件扩展名格式打开文件?
- ruby-on-rails - Rails - Activestorage 导致 Rails 配置失败