在用户存在的情况下而且数据库的 password 字段使用了 MD5 加密,检查 password 是否与数据库的匹配,完成登录检测;若不相等,返回“code:501, msg: 用户名密码错误”提示;若正确,将用户信息写入 session 并返回“code:200, msg: 登录成功!, res:{data:$info}”提示。
时间: 2024-02-26 17:56:24 浏览: 131
好的,下面是一个基于你的要求写的 PHP 代码示例:
```php
<?php
// 假设用户输入的用户名和密码分别为 $username 和 $password
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database_name");
// 查询用户信息
$query = "SELECT * FROM users WHERE username='$username' LIMIT 1";
$result = mysqli_query($conn, $query);
// 判断查询结果是否为空
if (mysqli_num_rows($result) == 0) {
// 用户不存在,返回错误提示
$response = array('code' => 501, 'msg' => '用户名密码错误');
echo json_encode($response);
} else {
// 获取用户信息
$user = mysqli_fetch_assoc($result);
$hashed_password = $user['password'];
// 检测密码是否匹配
if (md5($password) != $hashed_password) {
// 密码不匹配,返回错误提示
$response = array('code' => 501, 'msg' => '用户名密码错误');
echo json_encode($response);
} else {
// 登录成功,将用户信息写入 session
session_start();
$_SESSION['user'] = $user;
// 返回成功提示和用户信息
$response = array('code' => 200, 'msg' => '登录成功!', 'res' => array('data' => $user));
echo json_encode($response);
}
}
// 关闭数据库连接
mysqli_close($conn);
?>
```
需要注意的是,MD5 加密不是一种安全的加密方式,因此建议使用更安全的加密方式,比如 bcrypt 或者 Argon2。此外,还需要对传入的用户名和密码进行过滤和验证,以避免 SQL 注入等安全问题。
阅读全文