PHP 在页面刷新或退出时销毁会话
PHP Destroy Session on Page Refresh or Exit
我正在开发一个 PHP 应用程序,允许用户在线处理付款。过程如下;
- 用户访问
/index.php
并选择按钮 'pay now'
- 用户被重定向到 worldpay 并处理付款
- 付款成功后,worldpay 会向我的
/callback.php
发送一个 success
参数,这是我在重定向回 /index.php
之前设置 $_SESSION[status] = 'success'
的地方
这一切都按预期工作,如果付款成功,我可以显示一条成功消息,但是即使用户访问网站的其他页面并且 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']);
}
我正在开发一个 PHP 应用程序,允许用户在线处理付款。过程如下;
- 用户访问
/index.php
并选择按钮 'pay now' - 用户被重定向到 worldpay 并处理付款
- 付款成功后,worldpay 会向我的
/callback.php
发送一个success
参数,这是我在重定向回/index.php
之前设置
$_SESSION[status] = 'success'
的地方
这一切都按预期工作,如果付款成功,我可以显示一条成功消息,但是即使用户访问网站的其他页面并且 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']);
}