Php 管理限制因不相关的功能而失败

Php 管理限制因不相关的功能而失败,php,session,csrf,Php,Session,Csrf,我在PHP web应用程序中有这段代码 if (isset($require_admin) && $require_admin) { if(!check_admin()) { $toolContent_ErrorExists = $langCheckAdmin; $errorMessagePath = "../../"; } } 正常行为是,如果变量$require_admin设置为true,代码将检查访问是否由管理员进行

我在PHP web应用程序中有这段代码

  if (isset($require_admin) && $require_admin) {
    if(!check_admin()) {
        $toolContent_ErrorExists = $langCheckAdmin;
        $errorMessagePath = "../../";
    }
  }
正常行为是,如果变量$require_admin设置为true,代码将检查访问是否由管理员进行

我尝试在下面的几行中添加一段类似的代码,以便做其他事情,比如检查跨源(尤其是CSRF)请求

if (isset($require_token) && $require_token) {
    if( !checkToken( $mycsrf_token, $myform)) {
        $toolContent_ErrorExists = $langCheckToken;
        $errorMessagePath = "../../";
    }
}
我想,通过这种方式,我将有一个检查,我得到的张贴表格是有效的,如果没有,将有一个错误消息。 然而,当$require_token被设置为true,并且条件被验证时,我有一个非常奇怪的结果。不仅csrf验证没有发生任何事情,而且上面的函数停止正常工作,管理限制停止工作


我知道这个问题可能有点含糊不清,但我无法理解到底是怎么回事。我对网络编程没有太多经验,对PHP也不太熟悉,所以也许有人会有更好的想法

你会遇到什么错误?并且执行
&&$var
并不意味着
&&true
它只是意味着变量被设置了-不是真的,我应该得到一个错误,但我不会了。来宾可以查看管理员独占访问的页面。关于$var,你确定吗?添加一些错误处理-确保在.ini:)中将display_errors和display_startup_errors设置为1,是的,它说它不是false,所以表达式结果为true,因为它不是false,如果这有意义的话?虽然我的评论令人费解,但by是set,我的意思是有一个反对它的值-包括空字符串
将使用
if($var)
返回true