首页 > 解决方案 > PHP 在页面刷新或退出时销毁会话

问题描述

我正在开发一个允许用户在线处理付款的 PHP 应用程序。过程如下;

这一切都按预期工作,如果付款成功,我可以显示成功消息,但是即使用户访问网站的其他页面并返回,该消息仍然/index.php存在,如果浏览器选项卡关闭并重新-打开。

在我的/callback.php档案中;

session_start();
// get status sent by worldpay url
$status= $_GET['status'];

if($status=== 'success') {
    $_SESSION['status'] = 'success';
    header('Location: index.php');
    exit();
}

在我的/index.php我正在检查会话并显示如下消息;

if ( isset($_SESSION['status']) && ($_SESSION['status'] === 'success') ) {
    echo 'success msg';
}

我只需要向用户显示一次成功消息。

$_SESSION['status']每当用户时,我如何销毁;

我应该使用 cookie 还是其他方法?

标签: phpsession

解决方案


也许您可以在一次显示成功消息后取消设置 $_SESSION['status'] 。

if ( isset($_SESSION['status']) && ($_SESSION['status'] === 'success') ) {
   echo 'success msg';
   unset($_SESSION['status']);
}

推荐阅读