我有一个网站,其中包含一些需要安全显示的数据。 数据表应该是这样的
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
我在Codeigniter中按路线尝试
$route['rj/(:any)/(:any)'] = 'rj/single/$1/$1';
我知道这样做是不正确的,但是,请大家帮我验证一下我的头衔后的身分吧。
答案 0 :(得分:1)
在我的应用中,我会这样路由。
$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){
}
希望有帮助
答案 1 :(得分:1)
可以。
对Codeigniter的初次研究URI Class。
这是uri类的用法示例-
$this->uri->segment(n)
段功能允许您检索特定的段形式URI字符串,其中n是段号。段从左到右编号。例如,如果您的URI类似于codeigniter 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
并为了保护您的ID->您可以加密ID
将加密密钥设置为application / config / config.php,打开文件并设置:
$config['encryption_key'] = "YOUR KEY";
在控制器$this->load->library('encrypt');
中初始化Encrypt class
现在加密您的ID $encrypted_ID = $this->encrypt->encode($ID);
现在不用担心就通过您的URL传递
使用标题和加密ID调用URL时->
$encrypted_ID = $this->uri->segment(n); // n is the position of your ID in url
将其解码$plain_id = $this->encrypt->decode($encrypted_ID);