会话if语句在一个页面上工作而在另一个页面上工作

时间:2018-01-25 06:32:50

标签: php session

在我们开始之前,我是初学者。我确信这是一个简单的解决方案,但不适合我。

我正在使用会话,因此除非他们是管理员,否则没有人无法访问管理页面。

代码是:

if ( $_SESSION['admin'] != 1 ) {
$_SESSION['message'] = "You're not admin!";
header("location: ../error.php");    
}

完美无缺。普通用户无法访问它,但管理员可以访问它。 BUT。

在我的主要cpanel中,我想要一个链接到管理面板的按钮,只有在用户是管理员时才会出现。我做了同样的代码:

if ( $_SESSION['admin'] != 1 ) {
echo '<a href="admin/index.php"><button class="butto button-bloc" name="admin"/>Admin Panel</button></a>';
}

问题是,似乎按钮显示用户是否是管理员,现在我认为我的代码只是试图让我吹盖子,因为我花了整整一个小时试图找到什么f- - 正在旅途中。

任何帮助将不胜感激!我确信一个对PHP有好处的人会在一分钟之内解决它lol

3 个答案:

答案 0 :(得分:1)

您所写的条件对于管理员而非管理员

的用户是相同的

请检查条件

有一个链接到管理面板的按钮,只有在用户是管理员时才会出现。

if ( $_SESSION['admin'] == 1 ) { // you have written $_SESSION['admin'] != 1
echo '<a href="admin/index.php"><button class="butto button-bloc" name="admin"/>Admin Panel</button></a>';
}

答案 1 :(得分:0)

您可以使用

if (isset($_SESSION['admin']) && ($_SESSION['admin'] == 1 )) {
    echo '<a href="admin/index.php"><button class="butto button-bloc" name="admin"/>Admin Panel</button></a>';
}

这样,按钮会在您设置$_SESSION['admin']时显示,如果是TRUE(即1)。

答案 2 :(得分:0)

试试这个:

if (isset($_SESSION['admin']) {
    if ( ($_SESSION['admin'] == 1) ) {
        echo '<a href="admin/index.php"><button class="butto button-bloc" name="admin"/>Admin Panel</button></a>';
    }
}