PHP 在页面刷新或退出时销毁会话

PHP Destroy Session on Page Refresh or Exit

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

这一切都按预期工作,如果付款成功,我可以显示一条成功消息,但是即使用户访问网站的其他页面并且 returns 到 [=13],该消息仍然存在=],如果浏览器选项卡关闭并重新打开,它也会保留。

在我的 /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 还是其他方法?

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

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