📜  如果未登录,则 php 重定向 - PHP (1)

📅  最后修改于: 2023-12-03 14:53:23.416000             🧑  作者: Mango

如果未登录,则 PHP 重定向 - PHP

在开发 Web 应用程序时,经常需要限制特定页面或功能的访问权限。在这种情况下,我们可以使用 PHP 重定向来检查用户是否已登录,并在用户未登录时将其重定向到登录页面。

直接重定向:

以下代码演示了如何在 PHP 中检查用户是否已登录,并在用户未登录时重定向用户到登录页面:

<?php
session_start();

// 检查用户是否已登录
if (!isset($_SESSION['username'])) {
    header('Location: login.php');
    exit();
}
  • session_start() - 启动会话。
  • if (!isset($_SESSION['username'])) - 检查使用 $_SESSION 变量中的 username 键是否设置,如果未设置,则表示用户未登录。
  • header('Location: login.php') - 使用 HTTP 头将用户重定向到登录页面。
  • exit() - 立即终止脚本的执行。
函数封装:

我们可以将上述代码封装在一个函数中,以便在 Web 应用程序的其他页面中重复使用。以下是一个示例函数:

<?php
function redirect_if_not_logged_in() {
    session_start();
    if (!isset($_SESSION['username'])) {
        header('Location: login.php');
        exit();
    }
}
  • function redirect_if_not_logged_in() - 声明一个名为 redirect_if_not_logged_in 的函数。
  • session_start() - 启动会话。
  • if (!isset($_SESSION['username'])) - 检查使用 $_SESSION 变量中的 username 键是否设置,如果未设置,则表示用户未登录。
  • header('Location: login.php') - 使用 HTTP 头将用户重定向到登录页面。
  • exit() - 立即终止脚本的执行。

在要限制访问权限的页面中,只需调用此函数即可:

<?php
require_once 'functions.php';
redirect_if_not_logged_in();
  • require_once 'functions.php' - 包含包含 redirect_if_not_logged_in 函数的文件。
  • redirect_if_not_logged_in() - 调用 redirect_if_not_logged_in 函数以检查用户是否已登录并重定向到登录页面(如果需要)。
总结

使用 PHP 重定向可以确保只有经过身份验证的用户才能访问您的网站的受限区域。通过将检查用户是否已登录的代码封装在一个函数中,并在需要限制访问权限的页面中调用该函数,可以方便地重复使用此代码。