Php页面限制

时间:2018-01-26 09:52:42

标签: php

我想限制控制面板上的某些页面。我知道互联网上有很多信息,而且大部分问题都已被提出。但我仍然无法弄清楚为什么它对我不起作用。

所以我尝试将以下内容添加到控制面板上的其中一个页面:

<?php
    
    if (!session_id()) { 
      session_start();
    }

    if (!$_SESSION['u_id']){ 
      header("Location: fout.php?message=paginaontoegankelijk");
      die();
    }
    include_once 'header1.php';
    include 'includes/dbh.inc.php';
?>

因此,当有人试图在没有登录的情况下进入页面时,它将拒绝。它工作得很好。我想让只有u_id =='hans'的人可以访问此页面,所以我尝试将代码更改为:

<?php

    
    if (!session_id()) { 
      session_start();
    }

    // If u_id isnt same as 'hans' redirect to fout.php
    if (isset($_SESSION ['u_id']) != 'hans'){ 
      header("Location: fout.php?message=paginaontoegankelijk");
      die();
    }
    include_once 'header1.php';
    include 'includes/dbh.inc.php';
?>

不知怎的,这不起作用,当我这样做时,我仍然可以使用其他帐户访问它。

$_SESSION['u_id'] = $row['gebruiker_id'];

2 个答案:

答案 0 :(得分:3)

您的isset($_SESSION ['u_id'])未返回字符串。它返回一个布尔值(true或false)。

你必须使用:

if (isset($_SESSION['u_id']) && $_SESSION['u_id'] != 'hans')) {

答案 1 :(得分:0)

使用此代码检查变量是否存在以及检查其值:

if (isset($_SESSION ['u_id']) && $_SESSION['u_id'] != 'hans')

isset() PHP的功能:

  

确定变量是否已设置且不是NULL

并返回boolean

  

如果var存在且值不是NULL,则返回TRUE。否则为FALSE。