Codeigniter - 如何通过输入随机ID或代码来防止用户访问数据

时间:2017-05-17 13:16:46

标签: php codeigniter

我遇到有关查看数据的问题。我正在开展一些房地产项目,其中有一个代码页(用于输入房屋状态的代码)和一个状态页面(显示房屋的详细信息)。现在,我可以阻止用户在输入错误代码时重定向到状态页面,直到他们输入正确的代码。如果用户尝试在状态页面的URL中输入一些随机代码,那么如果代码错误,该页面将显示错误。我怎么能避免这个?在这种情况下,如何才能将用户重定向回代码页?

更新: 我在View页面上使用了这个条件:

<body id="status-page">
<?php
     if($listing[0]['code'] != $listing_code){
        die();
     }else{ ?>
        <!-- Content -->
        <div class="page-loader-wrapper">
         ....
        </div>
<?php } ?>

控制器:

function index(){
    $listing_code = $this->uri->segment(3);
    $result = $this->status_model->get_listing($listing_code);
    $data['listing'] = $result;
    $data['listing_code'] = $listing_code;
}

型号:

function get_listing($listing_code){
    $this->db->select('*');
    $this->db->from($this->listings_table);
    $this->db->where('code',$listing_code);
    $query = $this->db->get();
    $result = $query->result_array();
    return $result;         
}

一切正常,但是当我更改错误的网址代码而不是终止网页时,它会显示错误....

1 个答案:

答案 0 :(得分:1)

您有不同的选择 1)生成一个可以猜测的硬代码,你可以通过使用类似的东西来做到这一点

$code =  substr(md5(rand(16, time())), 0, 16);

如果用户输入了错误的代码并且它取代了错误  使用if命令杀死页面的其余部分if(condition to check if code exists ) {die();}

2)或者创建一个登录名并创建一个表格,列出可以使用代码的人