【问题标题】:PHP_SELF and DOCUMENT_ROOT differs depending on browserPHP_SELF 和 DOCUMENT_ROOT 因浏览器而异
【发布时间】:2019-11-11 15:17:20
【问题描述】:

今天我偶然发现了一件非常奇怪的事情。 超变量 $_SERVER 的内容取决于浏览器。

我在 Chrome 和 Firefox 上调用了完全相同的请求,只是在 var_dump 中输出了 $_SERVER 变量。

无论出于何种原因,DOCUMENT_ROOT 都不相同,PHP_SELF 也不同。

Chrome 80 和 Opera 64:

["DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs"
["SCRIPT_NAME"]=>
  string(23) "/dev/project123/root.php"
["PHP_SELF"]=>
  string(23) "/dev/project123/root.php"

Firefox 70 & Internet Explorer 11 & Edge:

["DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs/dev/project123"
["SCRIPT_NAME"]=>
  string(23) "/root.php"
["PHP_SELF"]=>
  string(23) "/root.php"

有谁知道,为什么以及如何解决这个问题?这是服务器问题吗?

谢谢

【问题讨论】:

  • 客户端如何支配服务器? O.o
  • 很奇怪,不是吗?相同的 URL,相同的服务器,相同的脚本,但输出不同:S
  • 没有在我的开发盒上看到这种行为 - 我在 Chrome、Opera、Firefox(和开发人员版)和 Edge 中得到了相同的输出/IE11 ...正如预期的那样;你真的只是在测试脚本上做var_dump($_SERVER) 吗?没有其他的? DOCUMENT_ROOT 的变化真的 看起来像不同的<VirtualHost> 指令...
  • 单独的浏览器无法产生这样的差异。它必须是服务器端的东西。

标签: php google-chrome server webserver


【解决方案1】:

发现问题。 “http://localhost”因浏览器而异。我还不知道,为什么会发生这种情况。

通过单个 php 文件传递​​所有内容的 .htaccess 规则以不同的 DOCUMENT_ROOT 值结尾。

所以现在这是另一个问题。 谢谢。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2018-03-30
    • 2016-03-21
    • 2018-04-10
    相关资源
    最近更新 更多