当前位置:首页 > PHP

php实现登录修改密码

2026-01-29 05:47:55PHP

实现登录功能

使用PHP实现登录功能需要验证用户输入的用户名和密码是否与数据库中的记录匹配。创建一个登录表单,提交后验证用户信息。

// 登录表单处理
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 数据库查询
    $sql = "SELECT * FROM users WHERE username = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$username]);
    $user = $stmt->fetch();

    // 验证密码
    if ($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        header('Location: dashboard.php');
    } else {
        $error = "用户名或密码错误";
    }
}

修改密码功能

修改密码功能需要用户先登录,然后输入旧密码和新密码。验证旧密码正确后更新数据库中的密码记录。

php实现登录修改密码

// 修改密码处理
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $old_password = $_POST['old_password'];
    $new_password = $_POST['new_password'];
    $confirm_password = $_POST['confirm_password'];

    // 验证新密码是否一致
    if ($new_password != $confirm_password) {
        $error = "新密码不匹配";
    } else {
        // 查询当前用户密码
        $sql = "SELECT password FROM users WHERE id = ?";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$_SESSION['user_id']]);
        $user = $stmt->fetch();

        // 验证旧密码
        if (password_verify($old_password, $user['password'])) {
            // 更新密码
            $hashed_password = password_hash($new_password, PASSWORD_DEFAULT);
            $sql = "UPDATE users SET password = ? WHERE id = ?";
            $stmt = $pdo->prepare($sql);
            $stmt->execute([$hashed_password, $_SESSION['user_id']]);
            $success = "密码修改成功";
        } else {
            $error = "旧密码错误";
        }
    }
}

安全注意事项

确保使用预处理语句防止SQL注入攻击。密码存储应使用password_hash函数进行哈希处理,验证时使用password_verify函数。

php实现登录修改密码

// 密码哈希示例
$hashed_password = password_hash('plain_password', PASSWORD_DEFAULT);

// 密码验证示例
if (password_verify('input_password', $hashed_password)) {
    // 密码匹配
}

会话管理

使用PHP的session_start函数管理用户会话,确保用户登录状态持久化。在敏感操作前检查用户是否已登录。

session_start();
if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

前端表单示例

创建登录和修改密码的HTML表单,确保表单使用POST方法提交。

<!-- 登录表单 -->
<form method="post" action="login.php">
    <input type="text" name="username" placeholder="用户名" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit">登录</button>
</form>

<!-- 修改密码表单 -->
<form method="post" action="change_password.php">
    <input type="password" name="old_password" placeholder="旧密码" required>
    <input type="password" name="new_password" placeholder="新密码" required>
    <input type="password" name="confirm_password" placeholder="确认新密码" required>
    <button type="submit">修改密码</button>
</form>

标签: 修改密码php
分享给朋友:

相关文章

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php数组实现

php数组实现

PHP 数组的基本实现 PHP 数组是一种非常灵活的数据结构,可以存储多个值,并且支持多种类型的键(整数或字符串)。PHP 数组实际上是有序映射(ordered map),可以看作是列表(vector…

php redis 队列实现

php redis 队列实现

PHP Redis 队列实现 Redis 是一个高性能的键值存储系统,常被用作消息队列。以下是使用 PHP 和 Redis 实现队列的几种方法。 安装依赖 确保已安装 PHP Redis 扩展。可以…