【发布时间】:2012-05-24 22:20:53
【问题描述】:
我正在将 Sagepay 集成到我的 Codeigniter v2.1 应用程序中 - 出于某种原因,我在获取 $_GET 查询字符串中从 Sagepay 返回的加密数据时遇到问题。
每当我尝试 $_GET 中的变量时,它都会返回 FALSE,类似地,$_GET 数组本身会返回一个空数组。
网址如下:
http://mydomain.com/packages/payment_status/success/?crypt=IgAdEBkXOhwsHRAATkVESF5RQkNDSEJEW1BWSVpDWVNDQUFXXVJXVCI1ICAOLApZFEJMIUVMRiMvSVoxMFxeMTMjW0kuQDAkXjBGIVoiK0FAUzcwQRhINxsTABAASTkuSDcbEwAQADATEQ8NA09EVUNEVl9OMAcXVCQGAB4KHA0cEwAMHBpWEg8XTyEBBhARBRYIEQNcUjELNQMRBioAT0VVQE1OUFpCLiQnJiVGSzYrJzogPTEqVDUqKiFPPzUxMDxWKiAoNlQ1ARcGExYdNgoBAQkHSTgqOikuJjctNjBQNQEXGzEbARYmExYbCBtPOionOTcxLSwqNlImJUYkAB0RAwZJKDIgNS0rIEk1HQMHNR8BU1RJQTA2FhcDFws3GxMAEABJOCo6Jyc3Ny42MFAmDxYLJg0VFkkgLD0lST4VFgdAMgwJDRsBSVVDREBDLwkABxoRTkZDVUBUXw==
$crypt = $this->input->get('crypt');
var_dump($crypt); // returns FALSE
我已开启以下配置设置:
$config['uri_protocol'] = "QUERY_STRING";
$config['enable_query_strings'] = TRUE;
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?'; // to allow the '?' character in the url
谁能建议我做错了什么?
【问题讨论】:
-
我不使用查询字符串方法,但您能展示一个用于调用此代码的 url 示例吗?
-
我已添加要返回的 URL
-
我很确定这已经被问过几次了。查看右侧的相关链接。
-
好的,现在我可以看到它是友好 url 和 get 的混合体。您缺少一个配置选项,然后您需要做一些工作以将 var 放入 $_GET 或使用 REQUEST。见答案。
-
您可以尝试将
uri_protocol设置为AUTO 吗?我正在使用一个类似的支付提供商,它在进行回调时坚持使用 GET 而不是 POST。我的 CI 实现允许两者,并且在使用 AUTO 时可以很好地读取值。
标签: php codeigniter input get opayo