-2

ユーザーが user_level に基づいてページを表示できるようにする PHP スクリプトがあります。ユーザーレベルが 1 に設定されている場合、ユーザーはページを表示できます。そうでない場合は、それらを index.php にリダイレクトします。何らかの理由で機能していません。「このページへのアクセスは許可されていません」というメッセージが表示されます。誰がログインしているか、管理者か通常のユーザーかに関係なく、そのメッセージが表示されます。何か案は?

<?php
include 'init.php';
include('core/init.inc.php');

var_dump($_SESSION)

if(!logged_in()){
header('Location: index.php');
exit();
}

if(!isset($_SESSION['user_level'])) {
echo 'You are not allowed to access this page. Click <a href="index.php">here</a> to go back to the home page';
exit();
}elseif(1 == (int)$_SESSION['user_level']){
header('Location: create_album.php');
exit;
}


include 'template/header.php';
?>
4

3 に答える 3

1

issetブール値を返し、それを削除します。

if(!isset($_SESSION['user_level'])) {
  echo 'You are not allowed to access this page. Click <a href="index.php">here</a> to go back to the home page';
  exit();
}elseif(1 == (int)$_SESSION['user_level'])){
  header('Location: create_album.php');
  exit;
}
于 2012-09-18T02:37:43.560 に答える
1

isset($_SESSION['user_level'])が問題です。

PHP 関数issetは、テスト対象の bool 値を返します。

于 2012-09-18T02:38:13.370 に答える
1

そこでは使用しないでくださいisset()boolean整数ではありません。代わりに、次の方法で実行できます。

交換

if(1 !==(int)(isset($_SESSION['user_level']))) {

if(isset($_SESSION['user_level']) && $_SESSION['user_level'] == 1) {
于 2012-09-18T02:39:25.413 に答える