当前位置:首页 > PHP

php实现登录小项目

2026-04-03 04:58:01PHP

环境准备

确保已安装PHP(建议7.4+版本)和MySQL数据库。推荐使用集成环境如XAMPP或WAMP简化配置。

数据库设计

创建用户表存储登录信息:

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

注册功能实现

创建注册表单register.php

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

处理注册逻辑register_process.php

php实现登录小项目

<?php
$conn = new mysqli('localhost', 'root', '', 'auth_demo');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $username = $_POST['username'];
  $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

  $stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
  $stmt->bind_param("ss", $username, $password);
  $stmt->execute();

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

登录功能实现

创建登录表单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', 'root', '', 'auth_demo');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $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");
      exit();
    }
  }
  echo "登录失败";
}
?>

会话管理

创建受保护页面dashboard.php

php实现登录小项目

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
  header("Location: login.php");
  exit();
}
?>
<h1>欢迎进入仪表盘</h1>
<a href="logout.php">退出登录</a>

退出登录处理logout.php

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

安全增强

在数据库连接后添加错误检查:

if ($conn->connect_error) {
  die("连接失败: " . $conn->connect_error);
}

对所有用户输入进行过滤:

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

该实现包含完整注册/登录流程,使用预处理语句防止SQL注入,password_hash()安全存储密码,会话机制管理用户状态。可根据需要添加验证码、记住我等功能扩展安全性。

标签: 项目php
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

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

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现推送

php实现推送

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

php无限分类的实现

php无限分类的实现

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

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…