php登录实现
PHP 登录实现
数据库连接
使用 PDO 或 MySQLi 扩展连接数据库。PDO 支持多种数据库,推荐使用。
$host = 'localhost';
$dbname = 'database_name';
$username = 'username';
$password = 'password';
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
用户输入表单
创建 HTML 表单,用于用户输入用户名和密码。
<form action="login.php" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
验证用户输入
在 login.php 中处理表单提交,验证用户输入。

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($password, $user['password'])) {
session_start();
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: dashboard.php");
} else {
echo "Invalid username or password";
}
}
密码哈希
存储密码时使用 password_hash 函数进行哈希处理。
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
会话管理
使用 session_start() 开启会话,确保用户登录状态。

session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
安全措施
防止 SQL 注入,使用预处理语句。启用 HTTPS 保护数据传输。设置 session.cookie_secure 和 session.cookie_httponly 增强会话安全。
ini_set('session.cookie_secure', 1);
ini_set('session.cookie_httponly', 1);
注销功能
提供注销选项,销毁会话。
session_start();
session_destroy();
header("Location: login.php");
以上步骤实现了 PHP 登录系统的基本功能,包括数据库连接、用户验证、密码哈希、会话管理和安全措施。






