所以目前,我的CI网站被格式化为参与URI,让我们说一个id,然后在数据库中找到一个结果显示在页面上。
如果我输入的数据库不在数据库中,那么我自然会收到数据库错误。有没有更好的方法来保护我的URI免受直接数据库访问,以及告诉用户他们输入的URL无效的最佳方法是什么?
答案 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
}
...