因此,目前,我的CI網站被格式化以接收URI的一部分,讓我們說一個ID,並從數據庫中查找結果以顯示在頁面上。由URI確定的數據
如果我輸入的數據庫不在數據庫中,但是自然會出現數據庫錯誤。有沒有更好的方法來保護我的URI不受直接數據庫訪問的影響,並且,告訴用戶他們輸入的URL無效的最佳方法是什麼?
因此,目前,我的CI網站被格式化以接收URI的一部分,讓我們說一個ID,並從數據庫中查找結果以顯示在頁面上。由URI確定的數據
如果我輸入的數據庫不在數據庫中,但是自然會出現數據庫錯誤。有沒有更好的方法來保護我的URI不受直接數據庫訪問的影響,並且,告訴用戶他們輸入的URL無效的最佳方法是什麼?
IMO你不應該只顯示一個錯誤,但也拋出一個404(或301,取決於你的應用程序)爲SEO原因
一個簡單的實現:
MY_Controller。 PHP
...
protected function error404()
{
set_status_header(404);
$data = array();
$this->load->view('error404_view', $data);
}
examplecontro ller.php
...
$data = $this->Some_model->get_by_id($id);
if (empty($data))
{
$this->error404();
}
else
{
// your view here
}
...
假設你的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
}
是的,我基本上在模型中創建了一個函數來檢查頁面的ID。我將數據庫名稱傳遞給該函數,以便它知道在哪裏查找,然後重定向到404錯誤頁面。多謝你們! – Sneaksta 2012-03-23 03:09:37