Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 试图设置“全球”$行政";变量以允许或拒绝访问我的站点的管理区域_Php_Session_Admin - Fatal编程技术网

Php 试图设置“全球”$行政";变量以允许或拒绝访问我的站点的管理区域

Php 试图设置“全球”$行政";变量以允许或拒绝访问我的站点的管理区域,php,session,admin,Php,Session,Admin,我正在使用具有以下代码的头文件: <?php $ADMIN = False; if(session_id() == '') { // session has NOT been started session_start(); } else { // session has been started } ?> 每次我尝试访问该网站所在的页面时,都会出现一个错误: Parse error: synta

我正在使用具有以下代码的头文件:

<?php
    $ADMIN = False;
   if(session_id() == '') {
   // session has NOT been started
     session_start();

   }
   else
    {
         // session has been started
      }
  ?>
每次我尝试访问该网站所在的页面时,都会出现一个错误:

Parse error: syntax error, unexpected '$ADMIN' (T_VARIABLE)

编辑以为此定义新的解决方案

如果您需要访问任何地方的内容,请尝试使用静态状态定义创建管理帮助器类

// Make sure to require this everywhere in your application
class Admin {
    private static $_is_admin = false;

    public static setAdminState($is_admin) {
        // Always store a boolean
        self::$_is_admin = $is_admin ? true : false;
    }

    public static isAdmin() {
        return self::$_is_admin;
    }
}

// Set your status like this
if ($row2['account_type'] == 'A') {
    Admin::setAdminState(true);
} else {
    Admin::setAdminState(false);
}
然后,您可以在任何地方(甚至在函数和类的范围内)访问它,如下所示:

if (Admin::isAdmin()) {
    // something
}

在什么行号上会出现错误?是否在标题前包含检查管理员状态的代码?还要注意,
false
'false'
是完全不同的。您可以将第二个块中的最后三行简化为:
$admin=$row2['account\u type']='A'。看看这是否解决了错误。当出现解析错误时,通常最好发布完整的代码,而不仅仅是两个看起来正确的块。除了不能取消定义或更改全局常量之外。常量有什么问题?为什么需要更改或取消设置状态?他正在循环中设置值。所以他会多次尝试定义同一个常量。而且,使用常量来定义动态应用程序状态参数是一个坏习惯。常量(顾名思义)在您的应用程序中应该是不可变的。这会出现在会话()中吗??
if (Admin::isAdmin()) {
    // something
}