2012-11-01 47 views
3

我有URL這樣http://domain/home/activate/MzU= .the參數如何在codeigniter url中傳遞base64encode字符?

"MzU=" = base64encode($data) 

我無法打開這個網址使用此參數。 這樣的錯誤! "The URI you submitted has disallowed characters." 如何在codeigniter url中傳遞base64encode字符?

+0

爲什麼會發生什麼?錯誤是數據嗎? –

+0

$ data是一個整數。激活是功能,mzu =是參數 –

+0

好吧(GET參數的最大長度有限制)。那麼會發生什麼,哪些不起作用?你在哪裏得到什麼錯誤? –

回答

1

請添加字符「=」把$ config [「permitted_uri_chars」]在你的config.php文件是可以在你的應用程序/ config目錄

+2

在許多情況下,只有將字符添加到配置文件是不夠的。假設爲url添加'@',你必須在_clean_input_keys($ str)函數中添加字符,這個函數可以在system/core/Input.php文件中找到。 –

2

您可以創建具有以下功能的幫助:

function url_query_encode($array = array()) 
{ 
    return str_replace('/', '_', rtrim(base64_encode(gzcompress(serialize($array))), '=')); 
} 


function url_query_decode($str = '') 
{ 
    return (is_string($str) && strlen($str)) ? @unserialize(gzuncompress(base64_decode(str_replace('_', '/', $str)))) : FALSE; 
}