Php 为什么这个变量总是返回true?
我正在尝试编写一个登录脚本。登录会话变量后,在主页上运行isLoggedIn函数。问题是,变量$loggedIn总是返回true。有人能帮忙吗Php 为什么这个变量总是返回true?,php,session-variables,Php,Session Variables,我正在尝试编写一个登录脚本。登录会话变量后,在主页上运行isLoggedIn函数。问题是,变量$loggedIn总是返回true。有人能帮忙吗 function validateUser($user) { if(isset($user)){ session_regenerate_id ();//this is a security measure $_SESSION['logged'] = 1; $_SESSION['userid'] = $user;} } //
function validateUser($user)
{
if(isset($user)){
session_regenerate_id ();//this is a security measure
$_SESSION['logged'] = 1;
$_SESSION['userid'] = $user;}
}
//Validates Login
function isLoggedIn()
{
if($_SESSION['logged'] = 1)
return true;
return false;
}
$loggedIn = isLoggedIn();
if($loggedIn){ SHOW CONTENT FOR LOGGED IN USERS }
else { show content for users not logged in }
您使用的是赋值运算符=
,而不是条件运算符=
应该是:
if ($_SESSION['logged'] == 1)
return true;
赋值的结果
=
是右侧表达式,即1,在本例中始终为真。:) 这是因为您正在使用单个equals设置$\u SESSION['logged']。改为使用双等于:
function isLoggedIn()
{
if($_SESSION['logged'] == 1)
return true;
return false;
}
如果($\u会话['logged']=1),则不是此 这是正确的->如果($\u会话['logged']=1)函数isLoggedIn() { if($\u SESSION['logged']=1)//将值'1'分配给$\u SESSION['logged'],因此在这种if条件下,它将检查是否有任何值是$\u SESSION['logged'],这对于所有情况都是真的(有效/无效) 返回true; 返回false; } $loggedIn=isLoggedIn()/那些$loggedIn的值将始终为真
将if($\u SESSION['logged']=1)更改为if($\u SESSION['logged']==1)谢谢,这确实有效,但是$loggedIn总是打印值“1”,这有什么原因吗?是的,因为您将$loggedIn的值设置为
true
,在PHP中作为1
回音。我的意思是,即使没有设置SESSION变量,它也会回音1,但一切都已修复,谢谢你的帮助!谢谢,这确实有效,但是$loggedIn总是打印值“1”,这有什么原因吗?