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

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


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:development:demo:cms:ucms:sample_php_page_404.php [2026/02/09 06:44] – внешнее изменение 127.0.0.1software:development:demo:cms:ucms:sample_php_page_404.php [2026/02/22 12:04] (текущий) – [Дополнения и Файлы] VladPolskiy
Строка 5: Строка 5:
 ====== 4.7.5 Файл 404.php ======  ====== 4.7.5 Файл 404.php ====== 
   * [[software:development:demo:cms:ucms:sample_html5_and_dinamic_page|Глава 4.0. Шаблон HTML и динамические страницы]]   * [[software:development:demo:cms:ucms:sample_html5_and_dinamic_page|Глава 4.0. Шаблон HTML и динамические страницы]]
-    * [[software:development:demo:cms:ucms:sample_html5_page|4.1 Шаблон HTML5]] +    * [[software:development:demo:cms:ucms:sample_html5_page|4.1Шаблон HTML5]] 
-    * [[software:development:demo:cms:ucms:sample_php_page_and_dinamic_page|4.2 Шаблон PHP и динамические страницы]]+    * [[software:development:demo:cms:ucms:sample_php_page_and_dinamic_page|4.2Шаблон PHP и динамические страницы]]
     * [[software:development:demo:cms:ucms:sample_php_page_sample|4.3. Файл sample.html]]     * [[software:development:demo:cms:ucms:sample_php_page_sample|4.3. Файл sample.html]]
       * [[software:development:demo:cms:ucms:sample_php_page_style_css|4.3.1. Файл style.css]]       * [[software:development:demo:cms:ucms:sample_php_page_style_css|4.3.1. Файл style.css]]
-      * [[software:development:demo:cms:ucms:sample_php_page_scripts_js|4.3.2 Файл scripts.js]]+      * [[software:development:demo:cms:ucms:sample_php_page_scripts_js|4.3.2Файл scripts.js]]
     * [[software:development:demo:cms:ucms:sample_php_page_index|4.4. Файл index.php часть 1]]     * [[software:development:demo:cms:ucms:sample_php_page_index|4.4. Файл index.php часть 1]]
     * [[software:development:demo:cms:ucms:sample_php_page_header|4.5. Файл header.php]]     * [[software:development:demo:cms:ucms:sample_php_page_header|4.5. Файл header.php]]
     * [[software:development:demo:cms:ucms:sample_php_page_footer|4.6. Файл footer.php]]     * [[software:development:demo:cms:ucms:sample_php_page_footer|4.6. Файл footer.php]]
     * [[software:development:demo:cms:ucms:sample_php_page_index_part_2|4.7. Файл index.php часть 2]]     * [[software:development:demo:cms:ucms:sample_php_page_index_part_2|4.7. Файл index.php часть 2]]
-      * [[software:development:demo:cms:ucms:sample_php_page_home.php|4.7.1 Файл home.php]] +      * [[software:development:demo:cms:ucms:sample_php_page_home.php|4.7.1Файл home.php]] 
-      * [[software:development:demo:cms:ucms:sample_php_page_about.php|4.7.2 Файл about.php]] +      * [[software:development:demo:cms:ucms:sample_php_page_about.php|4.7.2Файл about.php]] 
-      * [[software:development:demo:cms:ucms:sample_php_page_contact.php|4.7.3 Файл contact.php]]+      * [[software:development:demo:cms:ucms:sample_php_page_contact.php|4.7.3Файл contact.php]] 
 +      * [[software:development:demo:cms:ucms:sample_php_page_like.php|4.7.4. Файл like.php]] 
 +      * [[software:development:demo:cms:ucms:sample_php_page_404.php|4.7.5. Файл 404.php]]
 ===== Введение ===== ===== Введение =====
 Файл контента **Файл 404.php** (или файл данных) — это именованный блок информации, хранящийся на сервере, который содержит текст, изображения, видео или аудио. Он представляет собой упорядоченный набор данных (байтов), которые могут быть текстовыми или бинарными.\\    Файл контента **Файл 404.php** (или файл данных) — это именованный блок информации, хранящийся на сервере, который содержит текст, изображения, видео или аудио. Он представляет собой упорядоченный набор данных (байтов), которые могут быть текстовыми или бинарными.\\   
Строка 36: Строка 38:
 Если PHP выдает **предупреждение**, связанную с **include**, это означает, что скрипт не может найти  Если PHP выдает **предупреждение**, связанную с **include**, это означает, что скрипт не может найти 
 или загрузить требуемый файл. В отличие от include, **require** вызывает **фатальную ошибку**. или загрузить требуемый файл. В отличие от include, **require** вызывает **фатальную ошибку**.
-<code php index.php [enable_line_numbers="true"]>+<code php index.php [enable_line_numbers="true",highlight_lines_extra="7"]>
 <?php <?php
 // Получаем значение из URL: index.php?page=home // Получаем значение из URL: index.php?page=home
Строка 51: Строка 53:
 </code> </code>
 Сохраняем и проверяем ссылку http://localhost/index.php?page=404 в браузере Сохраняем и проверяем ссылку http://localhost/index.php?page=404 в браузере
 +<note shadow>{{:software:development:demo:cms:ucms:index_php_js_22.png|переход страниц}}</note>
 +И вот уже мы не получили **Предупреждения**, вместо этого **PHP** выдало ошибку и остановило выполнение скрипта, перейдя к //строке 10//, так как файла **404.php** нет в списке исключений. 
 +<code php index.php [enable_line_numbers="true",highlight_lines_extra="10"]>
 +<?php
 +// Получаем значение из URL: index.php?page=home
 +// Проверьте, находится ли запрошенная страница в списке разрешенных.
 +if (in_array($page, $allowed_pages)) {
 +// Безопасно подключить из директории pages/ внешний файл из массива
 +// ('home', 'about', 'contact', 'like') с расширением .php
 +require('pages/' . $page . '.php');
 +} else {
 + // Обработать некорректный запрос страницы (страница не найдена).
 + echo 'Искомая страница не найдена.';
 + }
 +?>
 +</code>
 +Добавим в массив исключений нашу страницу **404.php**
 +<code php index.php [enable_line_numbers="true",highlight_lines_extra="2"]>
 +<?php
 +include 'pages/footer.php';
 +$allowed_pages = array('home', 'about', 'contact', 'like', '404');
 +$page = $_GET['page'] ?? 'home'; // По умолчанию 'home'
 +?>
 +</code>
 <note shadow>{{:software:development:demo:cms:ucms:index_php_js_21.png|переход страниц}}</note> <note shadow>{{:software:development:demo:cms:ucms:index_php_js_21.png|переход страниц}}</note>
 +И на конец наводим красоту, заменив в //строке 10// функцию при исключении вывода текста на функцию вывода страницы с ошибкой.
 +  * **%%echo 'Искомая страница не найдена.';%%** на **%%include 'pages/404.php';%%**
 +
 +<code php index.php [enable_line_numbers="true",highlight_lines_extra="10"]>
 +<?php
 +// Получаем значение из URL: index.php?page=home
 +// Проверьте, находится ли запрошенная страница в списке разрешенных.
 +if (in_array($page, $allowed_pages)) {
 +// Безопасно подключить из директории pages/ внешний файл из массива
 +// ('home', 'about', 'contact', 'like') с расширением .php
 +require('pages/' . $page . '.php');
 +} else {
 + // Обработать некорректный запрос страницы (страница не найдена).
 + include 'pages/404.php';
 + }
 +?>
 +</code>
 +Сохраняем изменения и проверяем ссылку http://localhost/index.php?page=test в браузере
 +<note shadow>{{:software:development:demo:cms:ucms:index_php_js_23.png?|переход страниц}}</note>
 +
 +С этого момента, все ссылки, через файл **index.php** кроме указанных в массиве исключения, будут перенаправлятся на **index.php**, либо на страницу **"ошибки енота"**. Проверим это и перейдем к следующей главе.
 ===== Дополнения и Файлы ===== ===== Дополнения и Файлы =====
 см. также: см. также:
   * [[https://www.w3.org/|Консорциум Всемирной паутины (W3C)]]   * [[https://www.w3.org/|Консорциум Всемирной паутины (W3C)]]
   * [[https://www.w3.org/International/questions/qa-html-language-declarations.ru|Объявление языка в HTML]]   * [[https://www.w3.org/International/questions/qa-html-language-declarations.ru|Объявление языка в HTML]]
 +  * [[software:development:demo:cms:ucms:sample_php_deny access|4.8.0 Запрет доступа к просмотру страниц на основе сессий]]
  
 <note page> <note page>
Строка 65: Строка 113:
  {{:icons:16:arrow-transition.png?|}}</wrap>  {{:icons:16:arrow-transition.png?|}}</wrap>
 </note> </note>
 +
software/development/demo/cms/ucms/sample_php_page_404.php.1770608695.txt.gz · Последнее изменение: 127.0.0.1

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