我正在将Sagepay集成到我的Codeigniter v2.1应用程序中 - 由于某种原因,我遇到问题从$ _GET查询字符串中获取从Sagepay返回的crypt数据。
每当我尝试$ _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
任何人都可以建议我做错了吗?
答案 0 :(得分:0)
激活查询字符串时,应使用此语法
index.php?c=controller&m=method
有关详细信息,请阅读:
答案 1 :(得分:0)
Codeigniter不使用$ _GET或$ _POST变量。
$this->input->get()
和$this->input->post()
是你如何访问它们。
答案 2 :(得分:0)
试试这个:
$config['uri_protocol'] = "PATH_INFO";
$var = $this->input->xss_clean($_REQUEST['var']);
答案 3 :(得分:0)
最后用这个方法.. MY_Controller.php
function current_url() {
$CI =& get_instance();
$url = $CI->config->site_url($CI->uri->uri_string());
return $_SERVER['QUERY_STRING'] ? $url.'?'.$_SERVER['QUERY_STRING'] : $url;
}
//在我的控制器中 $ parts = parse_url(current_url());
if (isset($parts['query']) && is_array($parts))
{
parse_str($parts['query'], $querystring);
krumo($querystring);
}
现在看起来好了:)谢谢 - 已将uri设置更改为PATH_INFO并对htaccess文件进行了一些调整。