登陆页面php实现
创建数据库表结构
使用MySQL创建一个用户表,包含基础字段如用户名、密码(需加密存储)和邮箱:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
设计登录表单HTML
构建一个包含用户名、密码输入框和提交按钮的HTML表单,使用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>
编写PHP登录验证逻辑
在login.php中处理表单提交,验证用户凭证:

<?php
session_start();
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $db->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->execute();
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header('Location: dashboard.php');
exit;
} else {
$error = "用户名或密码错误";
}
}
?>
密码加密处理
在用户注册时使用password_hash()进行密码加密存储:
$hashed_password = password_hash($plain_password, PASSWORD_DEFAULT);
添加会话管理
登录成功后通过$_SESSION保存用户状态,其他页面通过检查会话控制访问权限:
// 检查是否已登录
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
安全增强措施
- 使用预处理语句防止SQL注入
- 对输出内容使用
htmlspecialchars()防止XSS攻击 - 启用HTTPS传输敏感数据
- 设置CSRF令牌防范跨站请求伪造






