我有一个非常简单的page.php,它应该显示所有的URL参数。 (我在一个更复杂的页面中遇到了这个问题,但只将其剥离到了这个测试,问题仍然存在)
<?php
if (!isset($_SESSION)) {
session_start();
}
print_r($_GET);
?>
当我直接导航到page.php?someProperty = testing时,我有时得到一个空数组(),然后在第二次尝试时按预期工作,以及每次后续尝试。在离开一段时间后,我第一次从服务器发出请求似乎总是失败。我开始认为这是一个较低的水平。调试非常困难,因为只要我观察它就会消失。什么可能导致这个?
环境信息:
PS - 我读过其他类似的帖子,但在每种情况下,有人忘记初始化会话或其他什么。我还确保在初始化会话之前没有设置空格或标题
更新 - 当页面无法读取URL参数时,浏览器也会立即从位置栏中删除查询字符串,将其减少到domain.com/page.php
即使我手动输入page.php?test = test的完整地址到URL栏,它也会立即缩短,页面会输出一个空白数组。此外,没有在Apache
答案 0 :(得分:0)
仅出于测试目的,还请包含print_r($_REQUEST);
之类的内容并检查其输出。
答案 1 :(得分:0)
为什么session_start在$ _SESSION的if isset中? 在会话启动之前,您无法读取$ _SESSION。 也许这会导致你的问题。 您的代码应以session_start
开头<?php
session_start();
if (!isset($_SESSION)) {
// Do something
}
print_r($_GET);
?>