【问题标题】:$_GET not working in HostPapa environment$_GET 在 HostPapa 环境中不起作用
【发布时间】:2016-10-06 18:21:52
【问题描述】:

我在 URL 中传递了一个 json 编码的数组,看起来像这样:

http://mywebsite.com/php/edit.php?event={...a bunch of values...}

在 edit.php 页面中,我像这样检索数组:

if(isset($_GET['event'])){ 
    $eventData = json_decode($_GET['event'],true); #return an array
}

这在我的本地 wamp 环境(在 localhost 上)非常有效。
这在 GoDaddy 环境中运行良好。
DOES NOTHostPapa 环境中运行。好像没有看到'event'参数,isset()没有返回true。

我完全困惑,甚至不知道该说什么或寻求 HostPapa 支持(如果有的话)。
有人知道这可能是什么原因吗?
是否有某种我应该查看的设置?
我真的非常感谢一些帮助。请。

更新:我只在传递数组时遇到这个问题。当我不使用数组时,它可以工作!

更新 #2: @Phil 提出了一个 LimitRequestLine 问题,我将其传递给 HostPapa 支持 (3X),但他们一直忽略它。我终于为他们创建了 2 个测试页面来模拟我的应用程序之外的问题。根目录中带有一个按钮的测试页面,单击该按钮会在根目录/php/ 中打开带有数组参数的第二页,这表明 $_GET 不起作用。
HostPapa 支持也忽略了这一点。

HostPapa 支持给我阅读的最终电子邮件(除其他外):

“您似乎使用了错误的代码,因此请求您 彻底检查文件中存在的代码。”

然后关闭我的票。

在创建 2 个支持测试页面的过程中,我了解到:

  1. 当第二个测试页面位于 php/ 目录中以模仿我的应用程序时,$_GET 不起作用
  2. 如果我将两个页面都放入根目录,因此将包括查询字符串在内的 URL 缩短 4 个字符,$_GET 工作就可以了。

不幸的是,在这种特殊情况下,解决方案是将我的托管服务提供商更改为实际提供支持的人。作为一家小型企业,我无法承受这些冗长的停机时间,这会花费我很多钱,而且当我的应用程序无法运行时,我的客户也不会对它产生信心。

非常感谢您感谢 @Phil 的帮助!

【问题讨论】:

  • 什么是 var_dump($_GET);当您将任何内容作为获取请求传递时返回?
  • 我认为问题出在他们的 php 设置中......询问他们或检查您是否可以从控制面板更改 php.ini
  • @KyleThomas 在这种特殊情况下 var_dump($_GET);返回:数组(0){}
  • @mohade 是的,我的目录中有一个 php.ini 文件。它当前仅包含一个时区条目。我相信此文件中的设置会覆盖提供商为站点设置的常规设置。什么设置会导致这种行为?
  • 包含查询参数的请求URL多长?您可能会遇到修改后的 LimitRequestLine 指令(假设为 Apache)

标签: php get


【解决方案1】:

HostPapa 支持终于解决了这个问题:

我们为您增加了“suhosin.get.max_value_length”值 帐户,此问题现已修复。

他们只用了 9 天(在此期间应用程序显然已关闭),我重新开票两次以及发送投诉。

仅供参考:我在 5 天前将托管服务提供商更换为 PeoplesHost

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多