Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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 会话中的isset无效_Php_Html_Session - Fatal编程技术网

Php 会话中的isset无效

Php 会话中的isset无效,php,html,session,Php,Html,Session,我创建了一个登录系统,用于确定用户是否使用$\u会话['logged\u in]=true登录;会话代码。但不知何故,当用户关闭浏览器并返回页面时,会给他们一个关于会话故障的错误信息。所以我使用了ifisset$\u SESSION['logged\u in']==true{但是当我打开我的站点时,它会给我一个错误提示 致命错误:无法对表达式的结果使用isset您可以改为使用null!==表达式 我怎样才能解决这个问题呢?我想你是打字错误。而不是 if(isset($_SESSION['logg

我创建了一个登录系统,用于确定用户是否使用$\u会话['logged\u in]=true登录;会话代码。但不知何故,当用户关闭浏览器并返回页面时,会给他们一个关于会话故障的错误信息。所以我使用了ifisset$\u SESSION['logged\u in']==true{但是当我打开我的站点时,它会给我一个错误提示

致命错误:无法对表达式的结果使用isset您可以改为使用null!==表达式


我怎样才能解决这个问题呢?

我想你是打字错误。而不是

if(isset($_SESSION['logged_in']==true)){ 
使用

您需要检查会话是否初始设置,而不是会话的值

[编辑]: 当您将会话的值指定为true时,最好对会话的值添加更多检查,以便:

if(isset($_SESSION['logged_in'])==true && $_SESSION['logged_in'] == true){ 
像这样改变,

if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']==true ){ 
 //do your stuff.
} 

isset$\u SESSION['logged\u in']==true这意味着什么?如果isset$\u SESSION['logged\u in']&&$\u SESSION['logged\u']==true或if!empty$\u SESSION['logged\u']=true;,那么如果我想将SESSION设置为logged\u=true;我会使用'isset$\u SESSION['logged\u']=true;,还是只使用'logged\u SESSION['logged\u'=true;?如果你想给$\u SESSION赋值['logged\u in'],然后使用$\u会话['logged\u in']=true;。函数设置只是为了检查您以前是否设置了会话。这会更改整个检查。即使将logged_设置为alse,它也会报告true。因为它已设置。这取决于人们如何编码,例如,他们可能未设置为未登录,或者在登录时设置为true。无论如何,我已编辑了我的答案以适应这种情况谢谢。
if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']==true ){ 
 //do your stuff.
}