Оглавление

21. Завершение выполнения сценария

Навигация при выборе значения из списка
Для досрочного завершения PHP-сценария используется оператор exit:
exit;
exit([<Сообщение>]);
Предположим, наш сайт содержит четыре страницы: index.php (главная страница), firma.php (о  фирме), price.php (продукция)  и contact.php (контактная информация).  Реализуем  механизм  навигации  по  сайту. Переход  на  другие страницы будет осуществляться не с помощью ссылок, а путем выбора нужной  страницы  из  списка.  Для  этого  на  всех страницах  сайта  должна присутствовать форма, описанная в листинге 36.

 
Листинг 36. Навигация по сайту с помощью списка

<form action="go.php">
<select name="page">
<option value="0" selected>На главную</option>
<option value="1">О фирме</option>
<option value="2">Продукция</option>
<option value="3">Контакты</option>
</select>
<input type="submit" value="Go!">
</form>
 

 

 Далее создаем файл go.php с кодом, приведенным в листинге 37.

 
Листинг 37. Содержимое файла go.php

<?php
if (isset($_GET['page'])) {
   switch($_GET['page']) {
   case '1':
      header('Location: firma.php'); exit();
   case '2':
      header('Location: price.php'); exit();
   case '3':
      header('Location: contact.php'); exit();
   default:
      header('Location: index.php'); exit();
   }
}
else {
   header('Location: index.php'); exit();
}
?>

 

Теперь при выборе страницы из списка и нажатии кнопки Go! мы попадем на нужную  страницу. Обратите  внимание,  что  вместо  оператора  break мы  использовали  оператор  exit,  так  как  после  перехода  на  нужную  страницу выполнение остального кода просто лишено смысла.

 

Примечания:
  • Так  как  функция  header()  устанавливает  заголовки  ответа  сервера,  то кроме указанного кода в файле go.php не должно быть никаких операторов вывода.  Даже  пустая  строка  перед  открывающим PHP-дескриптором (<?php)  вызовет  ошибку. Пустые  строки  внутри PHP-дескрипторов ошибку не  генерируют, так как вывод информации осуществляется только с помощью операторов echo или print. Кроме того, если используется кодировка UTF-8, то файл должен быть сохранен в кодировке UTF-8 без BOM.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити