数据由URI确定

时间:2012-03-22 01:20:39

标签: database codeigniter uri

所以目前,我的CI网站被格式化为参与URI,让我们说一个id,然后在数据库中找到一个结果显示在页面上。

如果我输入的数据库不在数据库中,那么我自然会收到数据库错误。有没有更好的方法来保护我的URI免受直接数据库访问,以及告诉用户他们输入的URL无效的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

假设您的ID存储在$ id中。然后你可以做这样的事情。

if() // if $id not found - depends how you are doing check
{
    $errorMsg = "Not found";
    $this->session->set_flashdata('errorMsg', $errorMsg );
    redirect('home'); //Redirect to the page which is always available and display flashdata with error message here
}

答案 1 :(得分:0)

imo你不仅应该显示错误,而且还要为 SEO 原因抛出404(或301,取决于你的应用程序)

一个简单的实现:

<强> MY_Controller.php

...
protected function error404()
{

    set_status_header(404);

    $data = array();

    $this->load->view('error404_view', $data);
}

<强> examplecontroller.php

...
        $data = $this->Some_model->get_by_id($id);
        if (empty($data))
        {
            $this->error404();          
        }
        else
        {
            // your view here        
        }
...

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html