我有一个非常简单的 page.php,它应该显示所有 URL 参数。 (我在一个更复杂的页面中遇到了这个问题,但将其简化为只有这个测试,问题仍然存在)
<?php
if (!isset($_SESSION)) {
session_start();
}
print_r($_GET);
?>
当我直接导航到 page.php?someProperty=testing 时,我有时会得到一个空的 array(),然后在第二次尝试和每次后续尝试中都按预期工作。离开一段时间后,第一次向服务器发出请求似乎总是失败。我开始认为这是较低级别的东西。调试非常困难,因为一旦我观察到它,它就会消失。什么会导致这个?
环境信息:
- PHP 5.3
- Apache 2
- 红帽 Linux
PS - 我读过其他类似的帖子,但在每种情况下,都有人忘记初始化 session 或其他内容。我还确保在初始化 session 之前没有设置空格或 header
更新 - 当页面无法读取 URL 参数时,浏览器也会立即从地址栏中删除查询字符串,将其缩减为 domain.com/page.php
即使我在 URL 栏中手动输入 page.php?test=test 的完整地址,它也会立即缩短,并且页面输出一个空白数组。此外,Apache 中没有启用任何类型的重写
最佳答案
仅出于测试目的,还请包括 print_r($_REQUEST);
之类的内容并检查其输出。
关于php - $_GET 和 $_REQUEST 为空,但只是有时为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41992735/