实现登录php
创建登录表单
在HTML文件中创建一个表单,包含用户名和密码输入框以及提交按钮。表单的action属性指向处理登录的PHP文件,method设置为POST。
<form action="login.php" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">登录</button>
</form>
处理登录逻辑
在login.php文件中,接收表单提交的数据,验证用户名和密码。通常需要连接数据库进行验证。

<?php
session_start();
// 假设数据库连接信息
$host = 'localhost';
$dbname = 'your_database';
$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);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
// 获取表单数据
$user = $_POST['username'];
$pass = $_POST['password'];
// 查询数据库验证用户
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $user);
$stmt->execute();
$userData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($userData && password_verify($pass, $userData['password'])) {
$_SESSION['user_id'] = $userData['id'];
$_SESSION['username'] = $userData['username'];
header("Location: dashboard.php");
exit();
} else {
echo "用户名或密码错误";
}
?>
密码哈希处理
在注册用户时,密码应使用password_hash函数进行哈希处理,确保安全存储。
$hashedPassword = password_hash($plainPassword, PASSWORD_DEFAULT);
会话管理
登录成功后,使用$_SESSION存储用户信息,确保用户在其他页面保持登录状态。

session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
安全性考虑
使用预处理语句防止SQL注入攻击,确保密码使用哈希存储,避免明文存储。对用户输入进行过滤和验证,防止XSS攻击。
$user = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
注销功能
提供注销功能,清除会话数据并重定向到登录页面。
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit();






