Как переопределить не найденную страницу в CodeIgniter? - PullRequest
1 голос
/ 13 апреля 2011

У меня есть приложение CodeIgniter, которое обычно работает так, как мне бы хотелось, но иногда пользователь переходит на несуществующую страницу и встречает недружелюбную ошибку. Я хотел бы автоматически обнаруживать ошибку и отображать полезную информацию для пользователя (не ошибки PHP). Я прочитал руководство пользователя CodeIgniter, но не смог найти ни одного соответствующего раздела.

Как мне обработать ошибку отсутствия страницы в CodeIgniter и отобразить мой собственный контент?

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

Если вы смотрите на обработку ошибок с вашей собственной пользовательской страницей, вы можете изменить шаблоны ошибок, найденные в application/errors. Если у вас есть причина, исходя из собственного кода, вы можете вручную отправить пользователя на одну из этих страниц, используя show_404 или show_error - проверьте страницу Обработка ошибок в официальных документах. 1006 *

1 голос
/ 13 апреля 2011

Попробуйте эти функции codeigniter

show_404('Your error message');
show_error('Your error message');

Более подробную информацию вы можете найти в http://codeigniter.com/user_guide/general/errors.html

пример:

if ($some_error) //condition
{
 show_error('Error');
}
0 голосов
/ 13 апреля 2011

Вам следует проверить наличие возвращаемых значений ошибок и перехватывать исключения.Это общая концепция программирования, а не что-то конкретное для Conigniter или PHP.

Тестирование на возвращаемые значения ошибок:

if (!sort($array))
{
    echo "Could not sort $array.";
}

Перехват исключений:

try
{
    $someFunction($data);
}
catch (Exception $e)
{
    echo "Something went wrong";
}

Конечнонаписать полезные сообщения об ошибках с соответствующей информацией, которая поможет пользователю найти свою проблему и / или поможет вам исправить ошибку.Вы можете продвинуться и использовать что-то вроде set_error_handler (): http://php.net/manual/en/function.set-error-handler.php

Я нашел эту интересную статью: http://www.derekallard.com/blog/post/error-handling-in-codeigniter/

Я не уверен, что она отражает текущую версию CI, поскольку она из2007

...