当前位置:首页 > PHP

php登陆注册功能实现

2026-02-27 17:05:02PHP

PHP 登录注册功能实现

数据库准备

创建一个名为 users 的表,包含以下字段:

  • id:自增主键
  • username:用户名,唯一
  • email:邮箱,唯一
  • password:密码(存储哈希值)
  • created_at:注册时间

SQL 示例:

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
);

注册功能实现

创建一个 register.php 文件,处理用户注册逻辑。

php登陆注册功能实现

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

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

    // 检查用户名或邮箱是否已存在
    $check = $conn->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
    $check->bind_param("ss", $username, $email);
    $check->execute();
    $check->store_result();

    if ($check->num_rows > 0) {
        echo "用户名或邮箱已存在";
    } else {
        // 插入新用户
        $stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
        $stmt->bind_param("sss", $username, $email, $password);

        if ($stmt->execute()) {
            echo "注册成功";
        } else {
            echo "注册失败";
        }
    }
}
?>

登录功能实现

创建一个 login.php 文件,处理用户登录逻辑。

<?php
session_start();
$conn = new mysqli('localhost', 'username', 'password', 'database');

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

    $stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = ?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows == 1) {
        $user = $result->fetch_assoc();

        if (password_verify($password, $user['password'])) {
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['username'] = $user['username'];
            echo "登录成功";
        } else {
            echo "密码错误";
        }
    } else {
        echo "用户不存在";
    }
}
?>

登录状态检查

创建一个 check_login.php 文件,检查用户是否已登录。

php登陆注册功能实现

<?php
session_start();

if (isset($_SESSION['user_id'])) {
    echo "已登录,用户ID: " . $_SESSION['user_id'];
} else {
    echo "未登录";
}
?>

注销功能

创建一个 logout.php 文件,处理用户注销逻辑。

<?php
session_start();
session_destroy();
header("Location: login.php");
exit();
?>

安全注意事项

  1. 使用 password_hash()password_verify() 处理密码
  2. 使用预处理语句防止 SQL 注入
  3. 对用户输入进行验证和过滤
  4. 使用 HTTPS 加密传输数据
  5. 设置 CSRF 防护措施

前端表单示例

注册表单 (register_form.php):

<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>
    <button type="submit">注册</button>
</form>

登录表单 (login_form.php):

<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>

标签: 功能php
分享给朋友:

相关文章

vue的艾特功能实现

vue的艾特功能实现

Vue 的 @ 功能实现 在 Vue 中实现类似社交平台的 @ 功能,通常涉及输入框的监听、用户匹配和选择插入。以下是具体实现方法: 监听输入框内容 使用 v-model 绑定输入框内容,并通过 @…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php 线程实现

php 线程实现

PHP 线程实现方法 PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式: 使用 pthreads 扩展 pthreads 是一个 PHP 扩展,允许在 PHP 中…

php 无限分类的实现

php 无限分类的实现

无限分类的实现方法 无限分类通常用于构建树形结构数据,如商品分类、多级菜单等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 邻接列表是最简单的实现方式,通过在每个节点中存…

vue实现论坛功能

vue实现论坛功能

实现论坛功能的核心模块 论坛功能通常包含用户发帖、回帖、分类浏览、搜索等核心模块。Vue.js 作为前端框架,需配合后端 API 实现数据交互。 基础项目结构搭建 使用 Vue CLI 或 Vite…

php无法实现

php无法实现

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