Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 为什么这个变量总是返回true?_Php_Session Variables - Fatal编程技术网

Php 为什么这个变量总是返回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;} } //

我正在尝试编写一个登录脚本。登录会话变量后,在主页上运行isLoggedIn函数。问题是,变量$loggedIn总是返回true。有人能帮忙吗

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”,这有什么原因吗?