PHP die() до и после

Я хотел бы удалить все на странице и echo Просто die()

Пример:

Code here!!
<?php $query_area = mysql_query("SELECT * FROM tblcargos WHERE id_tblarea = '$id_tblarea'") or die(mysql_error()); ?>
More code here

Таким образом, если код умрет, удалит все после и перед функцией умрет и echo Просто die()

2 ответа

Решение

Die() заканчивает страницу В этом весь смысл этой функции:) Вы не хотите изменять эту функциональность.

Метод, который вы можете сделать (обратите внимание на конец):

$query_area = mysql_query("SELECT * FROM tblcargos") or myCustomFunction();

myCustomFunction() может обработать ошибку, как вам нравится. На самом деле, я бы настоятельно рекомендовал сделать это в пользу die(),
Вы можете сделать так, чтобы он отображал "красивую" страницу с ошибкой, объясняя пользователю, что произошло.

Вот очень простой пример использования буферизации вывода:

ob_start();
// more code here
$query_area = mysql_query("SELECT * FROM tblcargos WHERE id_tblarea = '$id_tblarea'");
if (!query_area) {
     ob_clean();
     die(mysql_error()); 
}
//More code here
ob_end_flush();

Это будет захватывать вывод вашей страницы и отображать его нормально, если вы не столкнетесь с ошибкой. Тогда он откажется от вывода и покажет только ваше сообщение об ошибке.

Буферизация вывода может быть сложной, поэтому я бы порекомендовал реструктурировать ваш код, чтобы контент не выводился до тех пор, пока не завершится логика PHP.

Другие вопросы по тегам