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