【发布时间】:2020-04-03 02:55:39
【问题描述】:
我有 2 页。 page1 启动一个会话变量并有一个指向 page2 的链接。两个页面都包含相同的标题,其中包含 session_start。
但我无法理解为什么会话数组没有通过第二页。
header.php
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>
<?php print_r($_SESSION); ?>
page1.php 正确显示 $_SESSION 内容,如下所示
<?php
include('header.php');
$_SESSION['usager'] = "popo";
?>
<a href="page2.php"> Page 2 </a>
</body>
</html>
page2.php 有一个空数组作为 $_SESSION,因此什么也不显示
<?php
include('header.php');
echo "hi";
?>
</body>
</html>
我尝试过的
- 将 href 从相对链接更改为绝对链接。没有区别。
- 检查 PHPSESSID,它就在那里。
- 同一服务器上的某些项目不会触发该问题。
- 在 Chrome 上,按 shift + f5 删除缓存。没有区别。
我访问过的页面
- Very similar problem in PHP Bug website
- $_SESSION is empty after redirecting
- After redirection my $_SESSION is empty, why?
- php session lost after header() redirect
- Php session variables being lost after redirect
- Session lost after page redirect in php
- PHP session variables lost after redirect
- PHP Session variable is empty after redirecting to another page [duplicate]
【问题讨论】:
-
只是好奇,
page1.php在运行$_SESSION['usager'] = "popo";在print_r($_SESSION)之后如何显示Array [useager] => popo? (我刚试过没有<html>的东西,它似乎对我使用PHP 的内部服务器有效) 你使用的是哪个版本的PHP?哪个服务器? -
乍一看,我觉得还可以。
phpinfo()中有关会话的任何内容看起来很奇怪? -
错误报告是否显示任何内容? P.s.:您必须对我们中的一个人进行 ping 操作才能获得直接响应。我/其他人可能没有查看问题或没有打开窗口/选项卡。 @Maude
-
@kerbholz 感谢您提及这一点。我没有注意到,但确实,我第一次运行页面时,会话数组是空的。当我刷新它显示的页面时。我使用的是 7.2.24,它在学校服务器上,所以很难确切知道发生了什么。
-
@AlanP。我不知道这个命令! session 部分看起来不错,尽管 session.cookie_domain 和 session.cookie_httponly 都“没有价值”。网上的一些研究似乎表明这与问题无关。
标签: php session redirect session-cookies