在codeigniter中的网址中验证ID和标题

时间:2018-08-18 12:49:35

标签: php codeigniter url clean-urls

我有一个网站,其中包含一些需要安全显示的数据。 数据表应该是这样的

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';

我知道这样做是不正确的,但是,请大家帮我验证一下我的头衔后的身分吧。

2 个答案:

答案 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);