Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Остановка при ошибке.
 
 автор: Sergey89   (22.03.2005 в 09:47)   письмо автору
 
 

У меня есть страничка. Первая часть это HTML-код, вторая PHP и третья часть снова HTML. Если произойдёт ошибка при выполнении скрипта не заггрузится третья часть. Как такое избежать?

   
 
 автор: cheops   (22.03.2005 в 09:57)   письмо автору
 
   для: 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");
?>

   
 
 автор: Sergey89   (22.03.2005 в 10:33)   письмо автору
 
   для: cheops   (22.03.2005 в 09:57)
 

Понятно. Значит в этом случае можно только последнюю часть отдельно оформить. И ещё хотел спросить, зачем перед функциями иногда ставиться @?

   
 
 автор: cheops   (22.03.2005 в 22:20)   письмо автору
 
   для: 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.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования