我有一些网站需要安全显示的数据。 数据表应该像这样
id title slug
---------------------------
1 some title some-tilte
2 other too other-too
目前我正在通过ID访问数据。 例如www.example.com/auth/some-title
但现在的要求是出于安全目的验证带有标题的 ID。 那么我怎样才能像www.example.com/auth/some-title/id
一样调用网址
e.g
www.example.com/auth/some-title/1
我在代码点火器中按路线尝试
$route['rj/(:any)/(:any)'] = 'rj/single/$1/$1';
我知道这不是正确的方法,但你们能否帮助验证我的标题 slug 的身份。
是的,你可以。
首先研究代码点火器的URI类。
这是 uri 类的用法示例 -
$this->uri->segment(n)
段函数允许您从 URI 字符串中检索特定的段,其中 n 是段号。段从左到右编号。例如,如果你的URI喜欢代码点火器URI段
http://www.domainname.com/index.php/blog/language/php/function
通过上面的示例,URI 段函数通过 n 参数给出结果。
echo $this->uri->segment(1);//it will print blog
echo $this->uri->segment(2);//it will print language
echo $this->uri->segment(3);//it will print php
echo $this->uri->segment(4);//it will print function
为了保护您的身份证件 ->您可以加密您的身份证
件
将加密密钥设置为您的应用程序/配置/配置.php,打开文件并设置:
$config['encryption_key'] = "YOUR KEY";
在控制器$this->load->library('encrypt');
中初始化加密类
现在加密您的ID$encrypted_ID = $this->encrypt->encode($ID);
现在通过您的 URL 传递它,而无需担心。
当您的 URL 使用标题和加密 ID 调用时,则 ->
$encrypted_ID = $this->uri->segment(n); // n is the position of your ID in url
解码它$plain_id = $this->encrypt->decode($encrypted_ID);
在我的应用程序中,我像这样路由。
$route['sub_folder/controller/method/(:num)'] = 'sub_folder/controller/method/$1';
// or
$route['sub_folder/controller/method/(:any)'] = 'sub_folder/controller/method/$1';
你可以尝试类似的东西
$route['controller/method/(:any)/(:any)'] = 'controller/method/$1/$2';
您的方法可能如下所示:
public function single($page, $verify){
}
希望有帮助