php如何实现登录
使用PHP实现登录功能
创建登录表单
构建一个HTML表单,包含用户名和密码输入框。表单的action属性指向处理登录的PHP脚本,method设置为POST。
<form action="login.php" method="POST">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
处理登录请求
在login.php文件中,验证用户提交的数据。通常需要连接数据库查询用户信息。

<?php
session_start();
$host = 'localhost';
$dbname = 'database_name';
$username = 'db_username';
$password = 'db_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$user = $_POST['username'];
$pass = $_POST['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$user]);
$userData = $stmt->fetch();
if ($userData && password_verify($pass, $userData['password'])) {
$_SESSION['user_id'] = $userData['id'];
$_SESSION['username'] = $userData['username'];
header("Location: dashboard.php");
exit();
} else {
echo "用户名或密码错误";
}
} catch(PDOException $e) {
echo "数据库错误: " . $e->getMessage();
}
?>
密码安全存储
在注册或修改密码时,使用password_hash()函数对密码进行加密存储。

$hashedPassword = password_hash($plainPassword, PASSWORD_DEFAULT);
会话管理
登录成功后,使用$_SESSION存储用户信息,以便在其他页面验证用户登录状态。
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
注销功能
提供注销选项,清除会话数据并重定向到登录页面。
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit();






