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

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


software:development:demo:cms:ucms:sample_php_page_index_part_2

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
software:development:demo:cms:ucms:sample_php_page_index_part_2 [2026/02/08 18:00] – [4.7. Файл index.php часть 2] VladPolskiysoftware:development:demo:cms:ucms:sample_php_page_index_part_2 [2026/02/08 22:03] (текущий) – [Введение] VladPolskiy
Строка 18: Строка 18:
       * [[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]]
 ===== Введение ===== ===== Введение =====
 +**%%$_GET%%** в PHP — это встроенная суперглобальная переменная (ассоциативный массив), используемая для получения данных, переданных в скрипт через параметры URL-адреса (строку запроса). Данные передаются после знака вопроса **%%?%%** в формате ключ=значение (например, **%%page.php?id=10%%**), обеспечивая простой способ передачи информации между страницами. \\  
 +Основные характеристики и примеры:
 +  * Пример URL: **%%example.com/index.php?category=books&sort=price%%**.
 +  * Пример PHP: **%%echo $_GET['category']%%**;
 +  * Суперглобальность: Массив доступен в любом месте скрипта, включая функции и классы, без необходимости использовать **%%global%%**.
 +  * Применение: Используется для поиска, фильтрации, пагинации и передачи неконфиденциальных данных.
 +  * Безопасность: Данные видны в URL, поэтому не подходят для паролей. Всегда требуют очистки, так как могут содержать вредоносный код.
 +  * Проверка: Рекомендуется проверять наличие данных перед использованием: **%%isset($_GET['id'])%%** или **%%$_GET['id'] ?? null%%**. 
 +**%%$_GET%%** автоматически заполняется PHP при каждом запросе, если в URL присутствуют параметры. 
 +===== Файл index.php =====
 +В верхней части добавим массив списока разрешенных к выводу страниц и переменную **%%$page%%** со значение массива страниц меню **%%'home', 'about' и 'contact'%%**? а так же **%%'like'%%**
 +<code php index.php [enable_line_numbers="true"]>
 +<?php
 +include 'pages/footer.php';
 +$allowed_pages = array('home', 'about', 'contact', 'like');
 +$page = $_GET['page'] ?? 'home'; // По умолчанию 'home'
 +?>
 +</code>
 +Тут должно быть все понятно, за исключение **%%'like'%%**, ссылку на неё, мы для примерана,  расположим в блоке ссылок **%%<aside>%%**
 +\\  
 +В месте предпологаемого вывода контента, блок **%%<main>%%** разместим код 
  
 +<code php index.php [enable_line_numbers="true"]>
 +<?php
 +// Получаем значение из URL: index.php?page=home
 +// Проверьте, находится ли запрошенная страница в списке разрешенных.
 +if (in_array($page, $allowed_pages)) {
 +// Безопасно подключить из директории pages/ внешний файл из массива
 +// ('home', 'about', 'contact', 'like') с расширением .php
 +include('pages/' . $page . '.php');
 +} else {
 + // Обработать некорректный запрос страницы (страница не найдена).
 + echo 'Искомая страница не найдена.';
 + }
 +?>
 +</code>
 +Cохраним изменения в файле **index.php** и обновим страницу браузера с сылкой http://localhost в адресной строке.
 +<note shadow>{{:software:development:demo:cms:ucms:index_php_js_14.png|переход страниц}}</note>
 +Мы получили предупреждение: **%%Warning: include(pages/home.php): Failed to open stream: No such file or directory in C:\xampp\htdocs\index.php on line 14%%**, которое говорит нам о том, что при попытке **загрузить поток из файла pages/home.php произошла ошибка.  Нет такого файла или каталога в строке 14** нашего кода.\\  
 +Это в полной мере закономерно, так как в директории **/pages** файла **home.php** **не существует** и его мы создадим в следующем разделе данного руководства...
 ===== Дополнения и Файлы ===== ===== Дополнения и Файлы =====
 см. также: см. также:
software/development/demo/cms/ucms/sample_php_page_index_part_2.txt · Последнее изменение: VladPolskiy

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