无法获取查询字符串参数值

时间:2012-11-14 08:42:31

标签: php wordpress sagepay

我已经将sage pay与我的wordpress网站集成在一起。我目前正在模拟器模式下运行sagepay。

成功付款后,sagepay会重定向到我网站的成功页面。重定向网址就是这样。

mysite.com/?page_id=632&crypt=@7564ASKJjkkjh....encrypted string.

当我试图通过$ _REQUEST或$ _GET在我的成功页面上获取查询字符串参数时,我只能获取page_id。

但我无法获得'crypt'参数。

我也试过var_dump($ _ REQUEST)。它还只提供page_id但不提供crypt参数。

我不想从查询字符串中检索'crypt'参数。

注意:它正确地在localhost上工作。我有两个参数。但是当我在真实服务器上传我的网站时,我只能获得page_id,而不是'crypt'参数。

任何想法?

更新: 我的Sage pay给出的查询字符是这样的:

mysite.com/?page_id=632&crypt=@758D2CD31D4B6C192BB70DC99A9F9E1EEAD181E280A3B617E73ACD3E893992E5B9A8A823C3E3B5BE7AF4CEA53C3D12C5C39ECE6F203A2ED76B82711C2E84CFBA1D2574B80F1A53EE4C1D49C60570839F1B1AD4EE83C3D208B943EA9E5F88F94AA3D9F9C2E58F8C7A476787EF8DD438CF8A102AD0D154864291DC02FB8626C177CC02C18F102300AFA0F390841B1C841A2B5A90DB9B1741A46D7AC4C0CA11E90D3C230D5FB6767FAE638A31714FD2C432CB3854162AE49F2C88761C5BAFB92E9ACE354425D9D9801705B088580B9BE113C1319B41893BFC0A2B190F10E8FB5D6EEA779E725D129EE483C631373930BD0F6E6747CD7D79F7AD726D11CB17547D00015CA5793F6E322B8FA0354EAE2DF83A2BD460AB718AC205346EE3E39418B3FBF181B82DB8BC19448F6AC6F48121129F48F2F557F265C5B6A65B23B3FFA516182C7ECA416B6BD9C04E7693744F6133EB4E1989245073FE835D3BA19A8B1EE101

但它在localhost上工作正常

2 个答案:

答案 0 :(得分:4)

答案

您似乎正在运行Suhosin安全补丁。此修补程序将$_GET参数限制为最多512个字节。

为了解决这个问题,您需要为php.ini添加一个值。

suhosin.get.max_value_length = LIMIT_HERE

参考

来源:http://www.php.net/manual/en/reserved.variables.get.php#101469

  

请注意安装了suhosin补丁的PHP设置会有   get参数的默认限制为512个字符。虽然不好   实践中,大多数浏览器(包括IE)支持最高2000左右的URL   字符,而Apache的默认值为8000。

     

要使用suhosin添加对长参数的支持,请添加   php.ini中的suhosin.get.max_value_length = <limit>

更新1

由于您无法访问php.ini,因此您需要更改.htacess文件中的值(如果您使用的是Apache),或者您可以执行此操作它使用内置的PHP函数ini_set()

.htacess方法:

php_value suhosin.get.max_value_length 8000

ini_set方法:

ini_set('suhosin.get.max_value_length', '8000');

但是,很可能(但不确定)您的PHP安装不允许在每个目录的基础上修改Suhosin变量。要解决此问题,您必须将此请求放入php.ini,否则您无法做任何事情。

suhosin.perdir = "p"

答案 1 :(得分:3)

我认为您的生产环境已经在php.ini中为$ _REQUEST配置了过滤器,请查看php.ini的过滤器部分,更多信息:http://www.php.net/manual/en/filter.configuration.php

如果您不想在生产环境中更改此配置,可以使用filter_input访问该值,更多信息:http://www.php.net/manual/en/function.filter-input.php