php实现登录
PHP 登录实现
数据库连接
使用 PDO 或 mysqli 扩展连接数据库。PDO 提供更好的安全性和跨数据库兼容性。
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
登录表单
创建 HTML 表单用于用户输入用户名和密码。
<form action="login.php" method="post">
<input type="text" name="username" placeholder="Username" required>
<input type="password" name="password" placeholder="Password" required>
<button type="submit">Login</button>
</form>
验证用户输入
处理表单提交,验证用户输入并查询数据库。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute(['username' => $username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
session_start();
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header('Location: dashboard.php');
exit();
} else {
echo "Invalid username or password";
}
}
密码哈希
存储密码时使用 password_hash 函数进行哈希处理。
$hashedPassword = password_hash($plainPassword, PASSWORD_DEFAULT);
会话管理
使用 PHP 会话保持用户登录状态。
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit();
}
安全措施
防止 SQL 注入和跨站脚本攻击。
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
注销功能
销毁会话以注销用户。

session_start();
session_destroy();
header('Location: login.php');
exit();






