0

我正在将 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

谁能建议我做错了什么?

4

4 回答 4

0

激活查询字符串时,应使用此语法

index.php?c=controller&m=method

欲了解更多信息,请阅读:

http://codeigniter.com/user_guide/general/urls.html

于 2012-05-17T10:45:15.367 回答
0

Codeigniter 不使用 $_GET 或 $_POST 变量。

$this->input->get()$this->input->post()

是您访问它们的方式。

于 2012-05-17T10:47:39.143 回答
0

试试这个:

$config['uri_protocol'] = "PATH_INFO";
$var = $this->input->xss_clean($_REQUEST['var']);
于 2012-05-17T10:47:57.177 回答
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 文件进行了一些调整。

于 2012-05-17T12:03:45.157 回答