我在索引中创建一个会话,这是登录过程发生的地方,然后我保存"username, IsAdmin, logged, first_name,last_name"到会话。
session_start();
$_SESSION["logged"] = FALSE;
$logged = TRUE;
$_SESSION["username"] = $username;
$_SESSION["IsAdmin"] = $IsAdmin;
$_SESSION["logged"] = $logged;
$_SESSION["first_name"] = $first_name;
$_SESSION["last_name"] = $last_name;
header("Location:home.php");
如果用户登录了,我想显示主页,但它总是显示页面,即使用户没有登录。
当我将if语句更改为false时,页面将正确隐藏,因此它必须是它的值。
但是所有其他变量都可以在会话中顺利传递。
<?php
Include('../connect.php');
session_start();
$IsAdmin = FALSE;
$logged = FALSE;
$username = "";
$username = $_SESSION["username"];
$IsAdmin = $_SESSION["IsAdmin"];
$logged = $_SESSION["logged"];
$first_name = $_SESSION["first_name"];
$last_name = $_SESSION["last_name"];
?>
<?php if(logged == TRUE) :?>
<?php Include('../navigation.php'); ?>
//CODE TO SHOW WHEN LOGGED INA
<?php Include('../footer.php'); ?>
</body>
</html>
<?php endif; ?>
由于缩进问题,我不得不删除一堆html。
您忘记在变量名前添加$
。它应该是这样的
<?php if($logged == TRUE) :?>
当您使用没有$的日志时,就像logged == TRUE
一样,它将日志作为常量变量。因为它没有被定义它不会等于TRUE