|
|
|
| У меня есть страничка. Первая часть это HTML-код, вторая PHP и третья часть снова HTML. Если произойдёт ошибка при выполнении скрипта не заггрузится третья часть. Как такое избежать? | |
|
|
|
|
|
|
|
для: Sergey89
(22.03.2005 в 09:47)
| | Здесь два пути,
1) либо обрамить PHP-код в блок if
HTML-код
<?php
// PHP-код
if(!ошибка)
{
// PHP-код, который выполняется только если нет ошибки
}
?>
HTML-код
|
2) Либо оформить верхний и нижний HTML-код в виде отдельных файлов (top.php и bottom.php) и включать их в код главной страницы при помощи конструкции require_once
<?php
require_once("top.php");
// PHP-код
if(ошибка)
{
// Всё это хозяйство можно оформить в виде отдельной функции,
// которая будет принимать в качестве параметра текст для вывода
// в окно браузера
echo "Ошибка в блоке ракетного двигателя";
require_once("bottom.php");
exit();
}
// PHP-код
require_once("bottom.php");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.03.2005 в 09:57)
| | Понятно. Значит в этом случае можно только последнюю часть отдельно оформить. И ещё хотел спросить, зачем перед функциями иногда ставиться @? | |
|
|
|
|
|
|
|
для: Sergey89
(22.03.2005 в 10:33)
| | Этим знаком подавляется вывод предупреждений функций, возникающих например, при ошибке в выполнении. Вывод предупреждений и сообщений может нарушить дизайн Web-страницы и произвести плохое впечатление на посетителя, который ожидает вместо маловразумительной фразы на английском языке получить детальные объяснения и извинения на русском. Использование символа @ позволяет подавить вывод не только нежелательных сообщений, но и вообще любого вывода функции, включая полезный вывод. Например,
<?php
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx)
{
exit("<p>Извините, к сожалению, не доступен сервер MySQL.
Попробуйте посетить наш ресурс позже</p>");
}
?>
|
В случае невозможности установить соединение с сервером базы данных, без использования символа @ перед вызовом функции mysql_connect(), помимо сообщений выводимого функцией echo() выводит так же предупреждение: "Warning: mysql_connect()...".
Можно подавить вывод предупреждений у целого файла, поставив @ перед include
<?php
@include "index.php";
?>
|
Такой приём позволяет подавить весь вывод в окно браузера из файла index.php. | |
|
|
|