[英]PHP session variables getting lost after a header redirect
我無法弄清楚。 有時在重定向之后(請參見下面的代碼),會話變量會丟失。 有任何想法嗎?
請注意,腳本最初是使用?p = 1&u = 2&k = 3調用的。 如您所見,腳本將重定向到其自身。 會話變量在重定向后會丟失。
<?php
session_start();
if ((isset($_SESSION['p'])) and ($_SESSION['p'] != "")) {
// do something
} else {
$_SESSION['p'] = $_GET['p'];
$_SESSION['w'] = $_SERVER["HTTP_HOST"];
$_SESSION['u'] = $_GET['u'];
$_SESSION['k'] = $_GET['k'];
header("Location: http://".$_SESSION['w'].$_SERVER['PHP_SELF']."");
exit();
}
?>
干杯
復制並粘貼您的代碼,對我來說效果很好。 在<?php
-tag之前是否可能有空格或其他內容?
我不確定為什么會這樣。
可能您的php.ini
文件配置有php.ini
。
否則,您沒有正確的session.save_path
或寫權限。
但是,如果問題仍然存在,請嘗試以下方法:
<?php
session_start();
if (!$_SESSION['p']) {
$_SESSION['p'] = $_GET['p'];
$_SESSION['w'] = $_SERVER["HTTP_HOST"];
$_SESSION['u'] = $_GET['u'];
$_SESSION['k'] = $_GET['k'];
}
//code comes here
?>
我認為這是應該做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.