当前位置:首页 > PHP

php实现登陆注册

2026-02-28 02:07:36PHP

实现用户注册功能

创建注册表单页面(register.php),包含用户名、密码、邮箱等字段。表单提交方式应为POST:

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

处理注册逻辑(register_process.php),验证数据并存入数据库:

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

// 获取表单数据
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = $_POST['email'];

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

if($check->num_rows > 0) {
    die("用户名已存在");
}

// 插入新用户
$stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $password, $email);
$stmt->execute();

header("Location: login.php");
?>

实现用户登录功能

创建登录表单页面(login.php),包含用户名和密码字段:

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

处理登录逻辑(login_process.php),验证用户凭证:

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

$username = $_POST['username'];
$password = $_POST['password'];

$stmt = $conn->prepare("SELECT id, 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'];
        header("Location: dashboard.php");
    } else {
        die("密码错误");
    }
} else {
    die("用户不存在");
}
?>

数据库表结构

创建用户表(users)存储注册信息:

php实现登陆注册

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

安全性注意事项

密码必须使用password_hash()函数进行哈希处理,验证时使用password_verify()

所有数据库查询应使用预处理语句防止SQL注入

对用户输入进行过滤和验证,防止XSS攻击

php实现登陆注册

重要操作如修改密码需进行二次验证

会话管理

登录成功后创建会话:

$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $username;

检查用户是否登录的验证函数:

function isLoggedIn() {
    return isset($_SESSION['user_id']);
}

登出功能:

session_destroy();
header("Location: login.php");

标签: php
分享给朋友:

相关文章

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 //…

php 实现排序

php 实现排序

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

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…