在代码点火器中验证 url 中的 ID 和标题



我有一些网站需要安全显示的数据。 数据表应该像这样

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){
}

希望有帮助

相关内容

  • 没有找到相关文章

最新更新