Codeigniter& $ _GET变量w / Sagepay

时间:2012-05-17 10:32:06

标签: php codeigniter input get sagepay

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

任何人都可以建议我做错了吗?

4 个答案:

答案 0 :(得分:0)

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

index.php?c=controller&m=method

有关详细信息,请阅读:

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

答案 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文件进行了一些调整。