php实现网站登录
PHP 网站登录实现
数据库连接与用户表创建
使用 MySQLi 或 PDO 连接数据库,创建用户表存储用户名和密码(建议密码加密存储):
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
用户表 SQL 示例:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
登录表单设计
HTML 表单应包含用户名和密码字段,并提交到处理登录的 PHP 脚本:

<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>
登录验证处理
在 login.php 中验证用户输入:
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows == 1) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header("Location: dashboard.php");
exit();
}
}
$error = "Invalid username or password";
}
密码安全处理
注册时应使用 password_hash() 加密密码:

$hashed_password = password_hash($password, PASSWORD_DEFAULT);
会话管理与安全
登录成功后使用会话保持用户状态:
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
退出登录实现
销毁会话即可实现退出:
session_start();
session_destroy();
header("Location: login.php");
exit();
安全增强措施
- 使用 HTTPS 保护传输数据
- 实现 CSRF 防护令牌
- 限制登录尝试次数防止暴力破解
- 使用预处理语句防止 SQL 注入
- 定期更新密码哈希算法
完整登录流程示例
- 用户访问登录页面输入凭证
- 系统验证凭证并创建会话
- 验证通过后跳转到受保护页面
- 每次访问受保护页面检查会话有效性
- 用户主动退出或会话过期时清除会话数据
通过以上步骤可以实现一个基本的 PHP 网站登录系统,实际应用中应根据具体需求增加更多安全措施和功能。






