Данные определяются по URI - PullRequest
0 голосов
/ 22 марта 2012

Итак, на данный момент мой веб-сайт CI отформатирован так, чтобы принимать участие в URI, скажем, в идентификаторе, и найти в базе данных результат для отображения на странице.Идентификатор, которого нет в базе данных, однако, естественно, я получу ошибку базы данных.Есть ли лучший способ защитить мой URI от прямого доступа к БД, и, как лучше всего сообщить пользователю, что введенный им URL-адрес недействителен?

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

imo вы должны не только отображать ошибку, но и бросать 404 (или 301, в зависимости от вашего приложения) по SEO причинам

простая реализация:

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

0 голосов
/ 22 марта 2012

Предположим, ваш идентификатор хранится в $ 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...