当前位置:首页 > 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 = "用户名或密码错误";
    }
}

修改密码功能

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

// 修改密码处理
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函数。

// 密码哈希示例
$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方法提交。

php实现登录修改密码

<!-- 登录表单 -->
<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中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php实现注册登陆

php实现注册登陆

PHP 注册功能实现 创建数据库表结构(MySQL示例): CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…

php实现进度条

php实现进度条

PHP 实现进度条的方法 使用 HTML 和 CSS 结合 PHP 实现进度条 在 PHP 中,进度条通常通过 HTML 和 CSS 实现,PHP 负责计算进度并更新前端显示。 <di…