0

Sagepay を Codeigniter v2.1 アプリケーションに統合しています。何らかの理由で、$_GET クエリ文字列内で Sagepay から返される暗号データ​​を取得する際に問題があります。

$_GET から変数を試すたびに、FALSE として返されます。同様に、$_GET 配列自体も空の配列を返します。

URL は次のとおりです。

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

最後にこのメソッドを使用しました.. 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 に答える
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 に答える