当前位置:首页 > PHP

php实现注册登录

2026-01-14 13:30:34PHP

PHP 注册功能实现

创建数据库表(以 MySQL 为例)

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

注册表单 HTML

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

register.php 处理逻辑

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = trim($_POST['username']);
    $email = trim($_POST['email']);
    $password = $_POST['password'];
    $confirm_password = $_POST['confirm_password'];

    // 验证输入
    if (empty($username) || empty($email) || empty($password)) {
        die('所有字段必须填写');
    }

    if ($password !== $confirm_password) {
        die('两次密码输入不一致');
    }

    if (strlen($password) < 6) {
        die('密码长度至少6位');
    }

    // 密码哈希
    $hashed_password = password_hash($password, PASSWORD_DEFAULT);

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

    // 检查用户名/邮箱是否已存在
    $stmt = $db->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
    $stmt->execute([$username, $email]);

    if ($stmt->fetch()) {
        die('用户名或邮箱已存在');
    }

    // 插入新用户
    $stmt = $db->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
    $result = $stmt->execute([$username, $email, $hashed_password]);

    if ($result) {
        header('Location: login.php');
        exit;
    } else {
        die('注册失败');
    }
}
?>

PHP 登录功能实现

登录表单 HTML

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

login.php 处理逻辑

php实现注册登录

<?php
session_start();

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

    if (empty($username) || empty($password)) {
        die('所有字段必须填写');
    }

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

    // 查询用户
    $stmt = $db->prepare("SELECT * FROM users WHERE username = ? OR email = ?");
    $stmt->execute([$username, $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 {
        die('用户名或密码错误');
    }
}
?>

安全增强措施

密码哈希使用 PHP 内置的 password_hash() 和 password_verify() 函数

防止 SQL 注入使用 PDO 预处理语句

登录后会话管理

php实现注册登录

// 检查是否登录
session_start();
if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

// 登出功能
session_start();
session_destroy();
header('Location: login.php');
exit;

可选功能扩展

添加验证码防止暴力破解

实现记住我功能(使用安全cookie)

密码重置功能

电子邮件验证功能

用户资料管理功能

标签: php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('lo…

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class…