繁体   English   中英

为什么这个变量总是返回true?

[英]Why does this variable always return true?

我正在尝试编写一个登录脚本。 登录后,会设置会话变量,并在主页面上运行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,在这种情况下始终为真。 :)

这是因为你用单个等号设置$ _SESSION ['logged']。 使用双等于:

function isLoggedIn()
{
    if($_SESSION['logged'] == 1)
        return true;
    return false;
}

function isLoggedIn(){if($ _ SESSION ['logged'] = 1)//为$ _SESSION ['logged']分配值'1'所以在这个if条件下它检查是否有任何值是$ _SESSION ['记录'],对于所有情况都是如此(有效/无效)返回true; 返回false; }

$ loggedIn = isLoggedIn(); / $ loggedIn的值将始终为true

将if($ _ SESSION ['logged'] = 1)更改为if($ _ SESSION ['logged'] == 1)

不是这个 ($ _ SESSION ['logged'] = 1)这是正确的 - > if($ _ SESSION ['logged'] == 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM