当前位置:首页 > PHP

php实现登录注册

2026-02-14 00:09:37PHP

PHP 登录注册实现

数据库准备

创建用户表,包含必要字段如 id, username, password, email 等。使用 MySQL 示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

注册功能实现

处理用户提交的注册表单数据,验证并存储到数据库:

php实现登录注册

// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['register'])) {
    $username = trim($_POST['username']);
    $email = trim($_POST['email']);
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

    // 验证输入
    if (empty($username) || empty($email) || empty($_POST['password'])) {
        $error = "所有字段必须填写";
    } else {
        $stmt = $db->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
        if ($stmt->execute([$username, $password, $email])) {
            header("Location: login.php");
            exit;
        } else {
            $error = "注册失败,用户名或邮箱可能已存在";
        }
    }
}

登录功能实现

验证用户凭据并创建会话:

session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login'])) {
    $username = trim($_POST['username']);
    $password = $_POST['password'];

    $stmt = $db->prepare("SELECT id, username, password FROM users WHERE username = ?");
    $stmt->execute([$username]);
    $user = $stmt->fetch();

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

安全注意事项

  • 始终使用 password_hash()password_verify() 处理密码
  • 对用户输入进行验证和过滤,防止 SQL 注入
  • 使用 HTTPS 保护数据传输
  • 设置 CSRF 防护令牌
  • 实现密码强度要求和验证码机制

会话管理

登录成功后创建会话,登出时销毁会话:

php实现登录注册

// 登出处理
session_start();
session_destroy();
header("Location: login.php");

前端表单示例

注册表单基本结构:

<form method="post">
    <input type="text" name="username" required placeholder="用户名">
    <input type="email" name="email" required placeholder="邮箱">
    <input type="password" name="password" required placeholder="密码">
    <button type="submit" name="register">注册</button>
</form>

登录表单基本结构:

<form method="post">
    <input type="text" name="username" required placeholder="用户名">
    <input type="password" name="password" required placeholder="密码">
    <button type="submit" name="login">登录</button>
</form>

标签: php
分享给朋友:

相关文章

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…