当前位置:首页 > 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 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE ord…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php变量的实现

php变量的实现

PHP变量的实现机制 PHP变量的实现基于Zend引擎的底层数据结构。核心结构体zval用于存储变量类型和值,其设计允许动态类型转换和高效内存管理。 zval结构体 PHP变量通过zval结构体实现…

php无法实现

php无法实现

PHP 是一种功能强大的服务器端脚本语言,能够实现多种功能,包括动态网页开发、数据库交互、文件操作等。如果遇到“无法实现”的问题,通常是由于以下原因之一: 环境配置问题 确保 PHP 环境正确安装和…

php实现异步图片上传

php实现异步图片上传

异步图片上传的实现方法 在PHP中实现异步图片上传通常需要结合前端JavaScript和后端PHP代码。以下是几种常见的方法: 使用XMLHttpRequest或Fetch API 前端使用Java…