我无法弄清楚这一点。有时在重定向之后(参见下面的代码),会话变量会丢失。有什么想法吗?
注意,最初使用?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();
}
?>
干杯
答案 0 :(得分:0)
复制并粘贴您的代码,它对我来说效果很好。
你可能在<?php
- 标签之前有空格或其他什么吗?
答案 1 :(得分:0)
我不确定为什么会这样。
您的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
?>
在我看来,这就是应该做的事情。