我有一个处理用户登录的脚本,然后将他引导到索引页面,在该页面中他可以选择退出。这是目前的索引页面代码:
<?php
session_start();
?>
<html>
<body>
<?php
echo 'You are logged in as : ';
echo $_SESSION['username'];
echo '<p><a href="logout.php">Logout</a></p>';
?>
</body>
</html>
如果用户退出,它仍会显示文本。如何检查会话是否仍然存在并相应地显示不同的消息?
IE:如果用户未登录,则显示“您未连接”和登录链接?
答案 0 :(得分:1)
<?php
if (isset($_SESSION['username'])) {echo 'You are signed in.';}
else {echo 'You are not signed in.';}
?>
答案 1 :(得分:0)
(1)。一个常见的错误是尝试结束会话而没有先启动它
所以,如果您的login.php
有session_start();
,那么logout.php
如果您有init.php或包含的文件。只需将其添加到那里。会话开始。 那么你可以玩会话所有页面。
(2)。常见的注销脚本包含此
<?php
session_start();
session_destroy();
header('Location: index.php');
?>
(3)。你没有验证会话。
<?php
if (isset($_SESSION['username'])) {echo 'You are signed in.';}
else {echo 'You are not signed in.';}
?>
答案 2 :(得分:0)
您可以使用
检查是否存在活动会话if (session_id == '') {
// user logged out
} else {
// user logged in
}
我不是100%确定session_destroy是否会完全删除会话。 或者您可以检查是否($ _SESSION ['username'])
答案 3 :(得分:0)
<?php
session_start();
?>
<html>
<body>
<?php
if(isset($_SESSION['username'])){
echo "You are logged in as : {$_SESSION['username']}<p><a href='logout.php'>Logout</a></p>";
}
?>
</body>
</html>
只需unset($_SESSION['username']);
即可退出。
答案 4 :(得分:0)
您注销时需要调用session_destroy来清除会话。
然后像PHP中的任何其他变量一样,您应该能够检查它是否已设置,然后相应地显示代码。
if (!empty($_SESSION['username']) {
echo 'You are logged in as : '.$_SESSION['username'];
} else {
echo 'You are not connected';
}