Переменная $_GET

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

В этом блоке заданий мы познакомимся с одним из важнейших инструментов PHP для работы с данными, которые приходят от пользователя — суперглобальной переменной $_GET. Она позволяет "читать" информацию прямо из адресной строки браузера. Это основной способ передать на сервер простые данные, например, ID страницы, поисковый запрос или параметры для сортировки.

Вы научитесь получать эти данные, правильно и безопасно их обрабатывать, а также избегать распространенных ошибок. Задания построены от самых основ до более сложных практических ситуаций. Вы будете заполнять пропуски в коде, исправлять ошибки и предсказывать результат выполнения скриптов, чтобы закрепить понимание того, как работает $_GET-запросы в веб-разработке. Этот навык — фундамент для создания динамических сайтов.

Список тем

Простой доступ к GET-параметру

id: 39029_task_1

Представьте, что на ваш скрипт пришел запрос по URL `index.php?name=Alex`. Ваша задача — получить значение параметра `name` из адресной строки. Заполните пропуски в коде, чтобы он вывел имя пользователя на экран.

Заполните пропуски
<?php
// URL: /index.php?name=Alex

$userName = input1S[input2S];

echo "Привет, " . $userName;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что будет, если параметр отсутствует?

id: 39029_task_2

Проанализируйте код и URL-адрес. Пользователь зашел на страницу `profile.php` без каких-либо дополнительных параметров в адресной строке. Что в итоге выведет этот скрипт? Выберите наиболее точный вариант.

Выберите правильный вариант ответа
<?php
// URL: /profile.php

echo "Добро пожаловать, " . $_GET['user'];
?>
Сообщения
Проверить
Показать подсказку

Исправьте ошибку в синтаксисе

id: 39029_task_3

В коде допущена одна очень распространенная синтаксическая ошибка при доступе к элементу массива $_GET. URL запроса: `page.php?id=101`. Найдите строку с ошибкой и исправьте ее, чтобы скрипт заработал корректно.

Найдите ошибку и исправьте
<?php
// URL: /page.php?id=101
 
$pageId = $_GET[id];
 
echo "Вы находитесь на странице с ID: " . $pageId;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Безопасная проверка наличия параметра

id: 39029_task_4

Чтобы избежать предупреждений (warnings), которые мы видели в одном из прошлых заданий, хорошей практикой является проверка существования параметра перед его использованием. Соберите из 'банка' правильную конструкцию для проверки наличия параметра `page` в URL.

Нужно правильно расставить в пропуски предложенные варианты
<?php
// URL: /catalog.php?page=2

if (input1S(input2S[input3S])) {
    $currentPage = $_GET['page'];
    echo "Текущая страница: " . $currentPage;
} else {
    echo "Номер страницы не указан.";
}
?>
isset
empty
$_POST
$_GET
'page'
'number'
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Предскажите результат

id: 39029_task_5

Дан скрипт, который получает два параметра из URL: `product_id` и `category`. Внимательно посмотрите на код и на URL, с которым к нему обратились. Что именно будет выведено на экран в результате работы этого скрипта? Введите точный результат в поле ответа.

Что должно получиться?
<?php
// URL: /shop.php?product_id=734&category=laptops

echo $_GET['product_id'] . ", category: " . $_GET['category'];
?>
Сообщения
Проверить
Показать подсказку

Соберите скрипт приветствия

id: 39029_task_6

Соберите из фрагментов работающий PHP-скрипт. Скрипт должен проверять, передан ли параметр `user` в URL. Если да — он выводит "Привет, [имя пользователя]!". Если нет — выводит "Привет, Гость!". Некоторые фрагменты являются лишними и не должны использоваться.

Перетяните в правильном порядке строки из одного блока в другой
} else {
echo "Привет, " . $_GET['user'] . "!";
echo "Привет, Гость!";
<?php
if (isset($_GET['user'])) {
?>
}
$user = $_GET['user'];
if (empty($_GET['user'])) {
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Неправильная суперглобальная переменная

id: 39029_task_7

Программист хотел написать скрипт для обработки данных из URL, но по ошибке использовал не ту суперглобальную переменную. В описании указано, что данные приходят через GET-запрос. Найдите и исправьте ошибку в коде.

Найдите ошибку и исправьте
<?php
// Данные передаются через URL: /api.php?action=get_users
 
$action = $_POST['action'];
 
if ($action == 'get_users') {
    echo "Запрос на получение пользователей...";
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Значение по умолчанию с помощью оператора `??`

id: 39029_task_8

В PHP 7 появился удобный оператор объединения с null (`??`), который позволяет задать значение по умолчанию, если переменная не установлена или равна `null`. Посмотрите на код и URL. Что выведет скрипт?

Выберите правильный вариант ответа
<?php
// URL: /index.php

$language = $_GET['lang'] ?? 'en';

echo "Выбранный язык: " . $language;
?>
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру