我无法在PHP中取消设置会话(当我点击退出时它应该是destroy_session()但是它不能正常工作我的代码
<ul class="nav1">
<?php
if(!isset($_SESSION['user_name']) && empty($_SESSION['user_name']))
{
echo '<li><a href="#" data-toggle="modal" data-target="#myModal">Mobile</a></li>';
echo '<li><a href="#" data-toggle="modal" data-target="#myModal2">datacard</a></li>';
echo '<li><a href="#" data-toggle="modal" data-target="#myModal1">DTH</a></li> ';
echo '<li><a href="#" data-toggle="modal" data-target="#myModal4">login</a></li>';
echo '<li><a href="#" data-toggle="modal" data-target="#myModal5">Signup</a></li>';
}
else
{
echo "<li><a href='#'>Hello,".$_SESSION['user_name']."</a></li>";
echo "<li><a href='orders.php'>Passbook</a></li>";
echo "<li><a href='#'>Wallet</a></li>";
echo "<li><a href='settings.php'>Settings</a></li>";
echo "<li><a href='logout.php'><i class='fa fa-sign-out'></i> Logout</a></li>";
}
?>
我的退出代码是
<?php ob_start();
session_destroy();
unset($_SESSION['user_name']);
header("Location: index.php");
exit();
&GT;
请帮帮我!!提前致谢
答案 0 :(得分:0)
if(!isset($_SESSION['user_name']) && empty($_SESSION['user_name']))
应该是
if(empty($_SESSION['user_name']))
空检查未定义(与 isset 相同)并且缺少任何值 - 如果您已清除该值或身份验证失败。
来自:http://php.net/manual/en/function.session-destroy.php
注意:您不必从通常的代码调用session_destroy()。清理$ _SESSION数组而不是销毁会话数据。
但是,您需要使用 session_start 才能取消设置 $ _ SESSION ['user_name']
session_start();
unset($_SESSION['user_name']);
header('Location: index.php');
exit;
答案 1 :(得分:0)
我认为您在注销码中错过了session_start()
。
session_start();
unset($_SESSION['user_name']);
session_destroy();
header("Location: index.php");
exit();