当前位置:首页 > PHP

php实现登入

2026-02-16 13:03:16PHP

PHP 登录实现方法

创建登录表单

使用 HTML 创建一个简单的登录表单,包含用户名和密码字段。表单的 action 属性指向处理登录的 PHP 文件,method 设置为 POST

<form action="login.php" method="POST">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required>

    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required>

    <button type="submit">登录</button>
</form>

数据库连接

login.php 文件中,首先需要建立与数据库的连接。这里使用 MySQLi 扩展作为示例。

<?php
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";

$conn = new mysqli($servername, $username, $password, $dbname);

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

验证用户输入

获取表单提交的用户名和密码,并进行基本的清理以防止 SQL 注入。

php实现登入

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

$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($conn, $username);
$password = mysqli_real_escape_string($conn, $password);

查询数据库

在数据库中查询匹配的用户名和密码。密码应该以哈希形式存储,使用 password_verify 进行验证。

$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    if (password_verify($password, $row['password'])) {
        echo "登录成功";
    } else {
        echo "密码错误";
    }
} else {
    echo "用户名不存在";
}

设置会话

登录成功后,使用 PHP 的 session_start 创建一个会话,并存储用户信息。

php实现登入

session_start();
$_SESSION['username'] = $username;
$_SESSION['loggedin'] = true;

密码哈希

在注册用户时,密码应该使用 password_hash 进行哈希处理。

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

安全性增强

为了增强安全性,可以考虑以下措施:

  • 使用 HTTPS 协议
  • 实现 CSRF 保护
  • 设置登录尝试限制
  • 使用预处理语句防止 SQL 注入

完整示例代码

<?php
session_start();
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";

$conn = new mysqli($servername, $username, $password, $dbname);

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

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

    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = mysqli_real_escape_string($conn, $username);
    $password = mysqli_real_escape_string($conn, $password);

    $sql = "SELECT * FROM users WHERE username = '$username'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        if (password_verify($password, $row['password'])) {
            $_SESSION['username'] = $username;
            $_SESSION['loggedin'] = true;
            header("Location: welcome.php");
        } else {
            echo "密码错误";
        }
    } else {
        echo "用户名不存在";
    }
}
$conn->close();
?>

登出功能

创建一个 logout.php 文件来处理用户登出,销毁会话并重定向到登录页面。

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

通过以上步骤,可以实现一个基本的 PHP 登录系统。根据实际需求,可以进一步扩展功能,如记住我、密码重置等。

标签: 登入php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

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

php实现文件下载

php实现文件下载

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

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inter…

php 实现类

php 实现类

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

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…