Php Can';无法获取查询字符串参数值
我已将sage pay与我的wordpress网站集成。我目前正在模拟模式下运行sagepay 成功付款后,sagepay将重定向到我的网站的成功页面。重定向url如下所示Php Can';无法获取查询字符串参数值,php,wordpress,opayo,Php,Wordpress,Opayo,我已将sage pay与我的wordpress网站集成。我目前正在模拟模式下运行sagepay 成功付款后,sagepay将重定向到我的网站的成功页面。重定向url如下所示 mysite.com/?page_id=632&crypt=@7564ASKJjkkjh....encrypted string. 当我试图通过$\u REQUEST或$\u get在成功页面上获取查询字符串参数时,我只能获取页面id 但我无法获取“crypt”参数 我还尝试了var_dump($_请求)。它还只提
mysite.com/?page_id=632&crypt=@7564ASKJjkkjh....encrypted string.
当我试图通过$\u REQUEST或$\u get在成功页面上获取查询字符串参数时,我只能获取页面id
但我无法获取“crypt”参数
我还尝试了var_dump($_请求)。它还只提供page_id,而不提供crypt参数
我不想从查询字符串中检索“crypt”参数
注意:它在本地主机上正常工作。我得到了两个参数。但当我在live server上上传我的站点时,我只能获取页面id,而不能获取“crypt”参数。
suhosin.perdir = "p"
有什么想法吗
更新:
Sage pay给我的质询是这样的:
在该网站上,该网站的官方网站的官方网站的官方网站的官方网站的官方网站的官方网站的官方网站的官方网站的官方网站的官方网站的第18层18 18层18层18 18层18层8 8层8层8层8层8 8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层8层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层7层AC4C0CA13 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7693744F6133EB4E1989245073FE835D3BA19A8B1EE101
但是它在本地主机上运行良好我认为您的生产环境已经在php.ini中为$\u请求配置了过滤器,请查看php.ini的过滤器部分,更多信息: 如果不想在生产环境中更改此配置,可以使用filter\u输入访问该值,详细信息:Answer 似乎您正在运行Suhosin安全修补程序。此修补程序将
$\u GET
参数的最大值限制为512字节
为了解决这个问题,您需要向php.ini
添加一个值
suhosin.get.max_value_length = LIMIT_HERE
参考文献
资料来源:
请注意,安装了suhosin修补程序的PHP设置将
get参数的默认限制为512个字符。虽然不好
实际上,大多数浏览器(包括IE)支持的URL最多可达2000个左右
字符,而Apache的默认值为8000
要使用suhosin添加对长参数的支持,请添加
php.ini中的suhosin.get.max\u value\u length=
更新1
由于您无权访问php.ini
,因此需要更改.htacess
文件中的值(如果您使用的是Apache),或者,您可以使用内置php函数ini\u set()
进行更改
.h访问方法:
php_value suhosin.get.max_value_length 8000
ini_集合方法:
ini_set('suhosin.get.max_value_length', '8000');
但是,您的PHP安装可能(但不确定)不允许在每个目录的基础上修改Suhosin变量。要解决此问题,必须请求将其放入php.ini
,否则将无能为力。
suhosin.perdir = "p"
你能发布
crypt
参数吗?不带@符号试试看是否有效。这将至少缩小问题的范围:-)不。成功付款后,此重定向由Sage支付系统完成。所以我们不能设置方法类型。@PrakashPala您能urlencode
参数吗?或者你对它们没有控制权吗?致本·卡利:密码参数是由Sage Pay发送的。我们无法更改其值:(是的,但我无法访问服务器上的php.ini文件。是否有任何方法可以上载自定义php.ini或为此修复程序在.htaccess文件中进行某些更改?以及+1以获取帮助:)@PrakashPala在大多数情况下无法上载自定义php.ini。最好使用htaccess
文件或ini\u set()
。将修改答案谢谢Ben!问题解决了。我上传了自定义php.ini文件suhosin.get.max_value_length=6000。非常感谢您的帮助。@PrakashPala真棒,很乐意帮助:-)