每当我重新加载页面时,仍会设置取消设置PHP会话变量[重复]

问题描述 投票:3回答:2

这个问题在这里已有答案:

我的问题是当我取消设置会话变量然后重新加载login.php时,会话变量仍然设置。

这是我正在尝试做的事情:

我正在尝试通过在reset.php中设置的会话变量发送错误消息

<?php
session_start();
$_SESSION['reset-msg'] = "This link has already been used";
header("Location: {$url}login.php");
exit();
?>

Login.php应检查此会话是否已设置,然后显示错误消息并取消设置会话变量。

<?php
session_start();

if(isset($_SESSION['reset-msg']) && !empty($_SESSION['reset-msg'])){

   print_r($_SESSION);//prints "Array ( [reset-msg] => This link has already been used )"
   $warn_msg = $_SESSION['reset-msg'];
   $_SESSION['reset-msg'] = "";
   unset($_SESSION['reset-msg']);

}else{
   $warn_msg = "";
}
print_r($_SESSION);//prints "Array ( )"
exit;
?>

但是,每次重新加载login.php时,我仍然会收到相同的消息。

日志文件中显示的唯一错误

PHP警告:session_start():无法发送会话缓存限制器 - 已在第2行的/login.php中发送的标头(在/login.php:1处开始输出)

php session unset
2个回答
-2
投票

使用session_destroy或将会话索引定义为空白


-2
投票

使用以下内容。它会破坏会话

session_start();
session_unset();
session_destroy();
header('location:your-desired-location.php');
© www.soinside.com 2019 - 2024. All rights reserved.