| Следующая версия | Предыдущая версия |
| software:development:demo:cms:ucms:sample_php_page_index_part_2 [2026/02/08 17:51] – создано VladPolskiy | software:development:demo:cms:ucms:sample_php_page_index_part_2 [2026/02/08 22:03] (текущий) – [Введение] VladPolskiy |
|---|
| 4.7. Файл index.php часть 2 | <note page> |
| | {{:icons:16:arrow-transition-180.png?|}} |
| | **[[software:development:demo:cms:ucms:ucms_table_of_contents | Краткое содержание]]** |
| | </note> |
| | ====== 4.7. Файл index.php часть 2 ====== |
| | * [[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_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_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_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_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_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_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** **не существует** и его мы создадим в следующем разделе данного руководства... |
| ===== Дополнения и Файлы ===== | ===== Дополнения и Файлы ===== |
| см. также: | см. также: |