Files
Linux-book/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/user.php
T
2026-08-12 14:20:36 +08:00

58 lines
1.9 KiB
PHP

<?php
// 接受数据,并且提取出action
$data = json_decode(file_get_contents('php://input'), true);
$action = $data['action'] ?? '';
// 处理与用户相关的操作
include 'db.php';
// 如果数据库连接失败,则返回错误信息
/** @var mysqli $conn */
if (!isset($conn)) {
echo json_encode(['code' => 10004, 'status' => 'error', 'message' => '数据库连接失败']);
exit;
}
// 测试用户名是否已存在
function testUsername(mysqli $conn, string $username): bool
{
$sql = "select * from users where username = '$username'"; // sql注入风险
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
return true;
} else {
return false;
}
}
// 如果action是register,则注册用户
if ($action == 'register') {
$username = $data['username'];
$password = $data['password'];
$email = $data['email'];
if (testUsername($conn, $username)) {
echo json_encode(['code' => 10001, 'status' => 'error', 'message' => '用户名已存在']);
} else {
$sql = "insert into users (username, password, email) values ('$username', '$password', '$email')";
$result = mysqli_query($conn, $sql);
if ($result) {
echo json_encode(['code' => 0, 'status' => 'success', 'message' => '注册成功']);
} else {
echo json_encode(['code' => 10002, 'status' => 'error', 'message' => '注册失败']);
}
}
}
// login的逻辑
if ($action == 'login') {
$username = $data['username'];
$password = $data['password'];
$sql = "select * from users where username = '$username' and password = '$password'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
echo json_encode(['code' => 0, 'status' => 'success', 'message' => '登录成功']);
} else {
echo json_encode(['code' => 10003, 'status' => 'error', 'message' => '用户名或密码错误']);
}
}