php - 为什么这个变量总是返回真?

标签 php session-variables

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

关于php - 为什么这个变量总是返回真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506617/

相关文章:

php - 简单的开/关餐厅开关

PHP - 从开始和结束时间戳集构建时间线数据的最佳方式

PHP session 变量未保留

javascript - 在jsp中访问javascript中的 session 变量

php - 如何在 PHP 中触发正则表达式拒绝服务?

php - 如何修复 OpenCart 中 mail() 错误的错误参数?

javascript - 使jquery仅适用于页面上的单个href

c# - 这个 ASP.NET 顾问知道他在做什么吗?

php session_set_cookie_params 和 session_name 查询

asp.net-mvc - ASP.NET MVC 中的 session 变量