如何在codeigniter中阻止客户在浏览器上键入的URL?

时间:2017-05-26 07:30:05

标签: codeigniter-3

我创建了一个网站,而且我不允许客户在浏览器中输入链接。 我只想在网站上允许客户点击链接。

请给我一个解决方案!!!

感谢帮助!!!

1 个答案:

答案 0 :(得分:1)

在超链接中使用令牌。如果令牌与会话中的值不匹配则拒绝。

尝试以下方法:

  1. 在控制器中检查是否设置了session ['token'], 如果没有将session ['token']设置为rendom值。
  2. 如果令牌未设置或与$ _GET ['token']变量不匹配,则会重定向到错误页面。
  3. 如果令牌匹配得到变量(即$ _GET ['token']),则传递该值进行查看。
  4. 我不建议这样做,因为这样做可能会影响浏览器缓存。

    控制器构造函数

    function __construct()
    {
      parent::__construct();
      $this->load->library('session');
    
      if(!isset($_SESSION['token']))
      {
        $_SESSION['token'] = rand();
      }
    
      if((!$this->input->get('token')) || ($this->input->get('token') != $_SESSION['token']))
      {
        redirect('error_page');
      }
    
      // to pass to vew
      $data['token'] = $_SESSION['token'];
      $this->load->view('view_page',$data);
    }
    

    在view_page.php(view)中替换此类链接

    <a href="#link?token=<?php echo $token?>">Gallery link</a>