1
我想加密codeigniter中的url。codeigniter中的URL加密
我的最終目標是加密域後的所有內容。 example.com/controller/function/itemid 到 example.com/sdfsdfsff/sdafaergdfsd/dfesDEWrewF
我可以使用CI的「加密」庫在我的控制器encyrpt /解密的itemid,但有沒有其他辦法要在網址中輸入所有內容?
我想加密codeigniter中的url。codeigniter中的URL加密
我的最終目標是加密域後的所有內容。 example.com/controller/function/itemid 到 example.com/sdfsdfsff/sdafaergdfsd/dfesDEWrewF
我可以使用CI的「加密」庫在我的控制器encyrpt /解密的itemid,但有沒有其他辦法要在網址中輸入所有內容?
使用鉤子的替代方案可能只是覆蓋CI_URI
和CI_Config
類。將URI段加載到段數組時,應解密它們(可能在_set_uri_string()
方法中)。然後,它應該對覆蓋的CI_Config
類(特別是_uri_string()
方法)中的段進行加密。
這裏是爲您的享受的(未經測試)樣本:
<?php
// application/core/MY_URI.php
class MY_URI extends CI_URI {
function _set_uri_string($str)
{
parent::_set_uri_string($str);
$CI =& get_instance();
$CI->load->library('encrypt');
$parts = explode('/', $this->uri_string);
foreach ($parts as &$part)
{
if ($part) $part = $CI->encrypt->decode($part);
}
$this->uri_string = implode('/', $parts);
}
}
// application/core/MY_Config.php
class MY_Config extends CI_Config {
protected function _uri_string($uri)
{
if (!is_array($uri))
{
$uri = explode('/', $uri);
}
$CI =& get_instance();
$CI->load->library('encrypt');
foreach ($uri as &$part)
{
if ($part) $part = $CI->encrypt->encode($part);
}
return parent::_uri_string($uri);
}
}
你可能想看看掛鉤。 http://codeigniter.com/user_guide/general/hooks.html – 2012-02-07 15:00:35