Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:sample_php_page_404.php

4.7.5 Файл 404.php

Введение

Файл контента Файл 404.php (или файл данных) — это именованный блок информации, хранящийся на сервере, который содержит текст, изображения, видео или аудио. Он представляет собой упорядоченный набор данных (байтов), которые могут быть текстовыми или бинарными.
Основные характеристики файла:

  • Имя и расширение: Файл имеет имя и тип (формат), определяемый расширением, которое указывает на его содержимое.
  • Параметры: Файлы характеризуются размером, датой создания и последней модификации.
  • Применение: Данные файлы используются для вывода хранящегося контента, например, при добавлении документов или видео.

Файлы могут быть текстовыми (например, txt, html, php и т.д.) или содержать бинарные данные (видео, видео и прочее).

Файл Файл 404.php

В созданную корневую директорию /images загрузим файл изображения.

переход страниц

Создадим в блокноте и сохраним в директории /pages файл Файл 404.php записав в него код с загруженным файлом

404.php
<img src="images/404.png" alt="Описание картинки">

Файл index.php

В файле index.php меняем функцию

  • include('pages/' . $page . '.php'); на require('pages/' . $page . '.php');

Если PHP выдает предупреждение, связанную с include, это означает, что скрипт не может найти или загрузить требуемый файл. В отличие от include, require вызывает фатальную ошибку.

index.php
  1. <?php
  2. // Получаем значение из URL: index.php?page=home
  3. // Проверьте, находится ли запрошенная страница в списке разрешенных.
  4. if (in_array($page, $allowed_pages)) {
  5. // Безопасно подключить из директории pages/ внешний файл из массива
  6. // ('home', 'about', 'contact', 'like') с расширением .php
  7. require('pages/' . $page . '.php');
  8. } else {
  9. // Обработать некорректный запрос страницы (страница не найдена).
  10. echo 'Искомая страница не найдена.';
  11. }
  12. ?>

Сохраняем и проверяем ссылку http://localhost/index.php?page=404 в браузере

переход страниц

И вот уже мы не получили Предупреждения, вместо этого PHP выдало ошибку и остановило выполнение скрипта, перейдя к строке 10, так как файла 404.php нет в списке исключений.

index.php
  1. <?php
  2. // Получаем значение из URL: index.php?page=home
  3. // Проверьте, находится ли запрошенная страница в списке разрешенных.
  4. if (in_array($page, $allowed_pages)) {
  5. // Безопасно подключить из директории pages/ внешний файл из массива
  6. // ('home', 'about', 'contact', 'like') с расширением .php
  7. require('pages/' . $page . '.php');
  8. } else {
  9. // Обработать некорректный запрос страницы (страница не найдена).
  10. echo 'Искомая страница не найдена.';
  11. }
  12. ?>

Добавим в массив исключений нашу страницу 404.php

index.php
  1. <?php
  2. include 'pages/footer.php';
  3. $allowed_pages = array('home', 'about', 'contact', 'like', '404');
  4. $page = $_GET['page'] ?? 'home'; // По умолчанию 'home'
  5. ?>
переход страниц

И на конец наводим красоту, заменив в строке 10 функцию при исключении вывода текста на функцию вывода страницы с ошибкой.

  • echo 'Искомая страница не найдена.'; на include 'pages/404.php';
index.php
  1. <?php
  2. // Получаем значение из URL: index.php?page=home
  3. // Проверьте, находится ли запрошенная страница в списке разрешенных.
  4. if (in_array($page, $allowed_pages)) {
  5. // Безопасно подключить из директории pages/ внешний файл из массива
  6. // ('home', 'about', 'contact', 'like') с расширением .php
  7. require('pages/' . $page . '.php');
  8. } else {
  9. // Обработать некорректный запрос страницы (страница не найдена).
  10. include 'pages/404.php';
  11. }
  12. ?>

Сохраняем изменения и проверяем ссылку http://localhost/index.php?page=test в браузере

переход страниц

С этого момента, все ссылки, через файл index.php кроме указанных в массиве исключения, будут перенаправлятся на index.php, либо на страницу «ошибки енота». Проверим это и перейдем к следующей главе.

Дополнения и Файлы

Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/sample_php_page_404.php.txt · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki