PHP进阶:前后端交互、cookie验证、sql与php
warning:
这篇文章距离上次修改已过205天,其中的内容可能已经有所变动。
<?php
// 假设已经连接数据库
// 用户登录验证
function login($username, $password) {
global $pdo;
// 准备SQL语句
$sql = "SELECT * FROM users WHERE username = :username AND password = :password";
$stmt = $pdo->prepare($sql);
// 绑定参数
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
// 执行查询
$stmt->execute();
// 检查结果
if ($stmt->rowCount() > 0) {
// 用户名和密码匹配,登录成功
return true;
} else {
// 登录失败
return false;
}
}
// 用户注册
function register($username, $password) {
global $pdo;
// 准备SQL语句
$sql = "INSERT INTO users (username, password) VALUES (:username, :password)";
$stmt = $pdo->prepare($sql);
// 绑定参数
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
// 执行查询
$stmt->execute();
// 检查结果
if ($stmt->rowCount() > 0) {
// 注册成功
return true;
} else {
// 注册失败
return false;
}
}
// 用户登出
function logout() {
// 删除cookie
if (isset($_COOKIE['user_id'])) {
setcookie('user_id', '', time() - 3600, '/');
}
}
// 检查用户是否登录
function checkLogin() {
if (isset($_COOKIE['user_id'])) {
// 用户ID存在于cookie中
return true;
} else {
// 用户未登录
return false;
}
}
// 用户登录后设置cookie
function setUserCookie($user_id) {
// 设置cookie
$expire = time() + (3600 * 24 * 30); // 有效期30天
setcookie('user_id', $user_id, $expire, '/');
}
// 使用示例
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action'])) {
$action = $_POST['action'];
switch ($action) {
case 'login':
$username = $_POST['username'];
$password = $_POST['password'];
if (login($username, $password)) {
// 登录成功,设置cookie
$user_id = 1; // 假设从数据库获取用户ID
setUserCookie($user_id);
echo json_encode(['status' => 'success', 'message' => '登录成功']);
} else {
echo json_encode(['status' => 'error', 'message' => '登录失败']);
}
break;
case 'register':
$username = $_POST['username'];
$password = $_POST['password'];
if (register($username, $password)) {
echo json_encode(['status' => 'success', 'message' => '注册成功']);
} else
评论已关闭