3

我的 Web 应用程序有一个注销文件。我想在注销后创建一个会话,以便我可以回显注销成功消息。我的注销代码有效,但在销毁前一个会话后我无法创建新会话。

执行此操作的最佳方法是什么,请参阅代码:

//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']);
}

如果可能,我想避免在 url 中传递变量。

4

4 回答 4

12

session_start()之后再打电话session_destroy()

于 2011-10-20T22:53:30.117 回答
6

只需开始一个新会话:

session_start();
session_destroy();
session_start();
$_SESSION['food'] = 'pizza';
于 2011-10-20T22:54:31.133 回答
3

与其尝试将其存储为会话变量,不如检查引用者并检查 /logout/

if(strpos($_SERVER['HTTP_REFERER'], 'logout')  !== false) {
  echo 'You have successfully logged out.';
}
于 2011-10-20T22:54:50.237 回答
-1
session_id($session_id_to_destroy);
session_start();
session_destroy();
session_commit();
于 2014-07-30T21:18:29.977 回答