当前位置:首页 > PHP

php实现登录pdo

2026-02-15 18:19:16PHP

PHP 使用 PDO 实现登录功能

数据库连接配置

创建 config.php 文件存储数据库连接信息:

<?php
$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());
}
?>

用户登录表单

创建 login.php 文件包含登录表单:

<form action="authenticate.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>

验证用户凭证

创建 authenticate.php 处理登录验证:

<?php
require 'config.php';

$username = $_POST['username'];
$password = $_POST['password'];

$stmt = $pdo->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 credentials";
}
?>

密码哈希处理

注册时应使用 password_hash() 存储密码:

$hashedPassword = password_hash($plainPassword, PASSWORD_DEFAULT);

会话管理

创建 dashboard.php 显示受保护内容:

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}
?>
<h1>Welcome, <?php echo $_SESSION['username']; ?></h1>

安全注意事项

使用预处理语句防止 SQL 注入 验证所有用户输入数据 设置适当的会话过期时间 对敏感操作使用 CSRF 令牌 考虑实现登录尝试限制

完整示例结构

/login.php          # 登录表单
/authenticate.php   # 验证逻辑
/dashboard.php      # 受保护页面
/logout.php         # 注销脚本
/config.php         # 数据库配置

注销实现

创建 logout.php 结束会话:

php实现登录pdo

<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
?>

标签: phppdo
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('loca…

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常用…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…