当前位置:首页 > 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开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…