当前位置:首页 > 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 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…