1

stackoverflow 的帮助有所帮助,但这次我没有发现任何关于它的信息。我正在做一个系统,比如wordpress:/admin/ /content/ /index.php

因此,作为 WP,“内容”内部将包含“主题”,但我的问题与此无关。管理员,当然,用户必须登录。如何将 /admin/* 中的所有内容重定向到我的 /admin/login.php ?我找到了要使用的代码,例如:

php代码:

if (!empty($_SESSION['logged_in']))
echo something;
else
redirect something;

但是,我不想在每个页面中都做到这一点,我想在 header.php 中,在开始时做:

if (!empty($_SESSION['logged_in']))
header ('Location: webpage');

HTML代码在这里。

但是,我不想加载那个 html 代码,我想先重定向,然后再显示 HTML。可能吗?

4

2 回答 2

0

如果您想至少检测您的帐户(如果您是管理员),那么请考虑您已检索到该帐户的 sql 数据并将其存储到会话中。

让我考虑一下$_SESSION['user_id']$_SESSION['user_prev']user_id是你sql的账户主键,user_prev是权限,我说

Member = 1
Developer = 50
Admin = 99

这些是您的特权编号,当然它们必须存储在您的数据库中并检索数据...

我们需要假设某个“访客”确实登录了……我们不知道它是会员/开发者还是管理员。

if(isset($_SESSION['user_id']))
{
     if(isset($_SESSION['user_prev'])) {
            /*We need to check if it is Admin or else it might be
             *a Developer or just a Member
             */
            if($_SESSION['user_prev'] == 99) {
                include_once 'admin_content.php';
            }elseif($_SESSION['user_prev'] == 50) {
                include_once 'developer_content.php';
            }else{
                include_once 'member_content.php';
            }
     }
}else {
    header("Location: login.php");
}

我使用“include_once”而不是将用户重定向到某个内容/php ...这也将帮助您保护您的内容...

于 2013-06-19T18:21:02.317 回答
0

Try something like:

if (!empty($_SESSION['logged_in'])) {
header ('Location: /admin/login.php');
exit;
}
else
{
// HTML
}

Make sure you call header() before sending any other head information to the browser.

于 2013-06-19T18:03:01.000 回答