我的网络应用程序有一个注销文件。我想在注销后创建一个会话,以便我可以回显注销成功消息。我的注销代码有效但我在销毁前一个会话后无法创建新会话。
执行此操作的最佳方法是什么,请参阅代码:
//LOGOUT.PHP
session_start();
//// unset all $_SESSION variables
session_regenerate_id();
session_unset();
session_destroy();
$_SESSION['logoutsuccess'] = 'You have successfully logged out.';
header("Location: /login/");
exit;
//LOGIN.PHP (ECHO SUCCESS MESSAGE)
if(isset($_SESSION['logoutsuccess']))
{
echo '<div class="success">'.$_SESSION['logoutsuccess'].'</div>';
unset($_SESSION['logoutsuccess']);
}
如果可能,我想避免在网址中传递变量。
答案 0 :(得分:10)
session_start()
之后再次致电session_destroy()
答案 1 :(得分:5)
刚开始一个新会话:
session_start();
session_destroy();
session_start();
$_SESSION['food'] = 'pizza';
答案 2 :(得分:3)
您可以检查引用并检查/ logout /
,而不是尝试将其存储为会话变量if(strpos($_SERVER['HTTP_REFERER'], 'logout') !== false) {
echo 'You have successfully logged out.';
}
答案 3 :(得分:-1)
session_id($session_id_to_destroy);
session_start();
session_destroy();
session_commit();