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

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


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

Различия

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

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

Следующая версия
Предыдущая версия
software:development:demo:cms:ucms:sample_php_page_404.php [2026/02/09 01:15] – создано VladPolskiysoftware: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** (или файл данных) — это именованный блок информации, хранящийся на сервере, который содержит текст, изображения, видео или аудио. Он представляет собой упорядоченный набор данных (байтов), которые могут быть текстовыми или бинарными.\\   
Строка 31: Строка 33:
 <img src="images/404.png" alt="Описание картинки"> <img src="images/404.png" alt="Описание картинки">
 </code> </code>
-и проверяем ссылку http://localhost/index.php?page=404 в браузере+===== Файл index.php ===== 
 +В файле **index.php** меняем функцию  
 +  *  **%%include('pages/' . $page . '.php');%%** на **%%require('pages/' . $page . '.php');%%** 
 +Если PHP выдает **предупреждение**, связанную с **include**, это означает, что скрипт не может найти  
 +или загрузить требуемый файл. В отличие от include, **require** вызывает **фатальную ошибку**. 
 +<code php index.php [enable_line_numbers="true",highlight_lines_extra="7"]> 
 +<?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> 
 +Сохраняем и проверяем ссылку 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> 
 +И на конец наводим красоту, заменив в //строке 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>
Строка 45: Строка 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.1770588926.txt.gz · Последнее изменение: VladPolskiy

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