---
title: "Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других? - WebTolk"
description: "На основе данных из $_GET, $_POST порой строится логика работы кода начиная от шаблона Joomla и кончая модулями и плагинами. Для работы с этими данными используется объект Input, который мы получае..."
url: "https://web-tolk.ru/blog/sovet-po-joomla-kak-poluchat-dannye-iz-superglobalnykh-massivov-post-get-i-drugikh"
date: "2024-07-17T12:05:39+00:00"
language: "ru-RU"
---

# Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?

 Автор: Сергей Толкачев Создано: 17 июля 2024 Обновлено: 17 июля 2024 Просмотров: 2778

На основе данных из `$_GET`, `$_POST` порой строится логика работы кода начиная от шаблона Joomla и кончая модулями и плагинами. Для работы с этими данными используется объект Input, который мы получаем из Приложения Joomla.

Приведу пример, часто использующийся при разработке шаблонов Joomla

```
<?php
use Joomla\CMS\Factory;

/** @var \Joomla\CMS\Application\CMSApplication $app */
$app   = Factory::getApplication();
/** @var \Joomla\Input\Input $input */
$input = $app->getInput();

// Detecting Active Variables
$option   = $input->get('option', '','');
$view     = $input->get('view', '','');
$layout   = $input->getCmd('layout', '');
$task     = $input->getString('task', '');
$itemid   = $input->getInt('Itemid', '');
```

В методе `$input->get()` 2-й аргумент - это значение по умолчанию на случай, если данных не обнаружено. 3-й аргумент - параметры фильтрации данных - будьте с ним внимательны.

Например, вы хотите получить данные, отправленные на ендпоинт в виде `JSON.stringify`.

```
<?php
$input->json->get('title', '', 'RAW')
// ИЛИ
$data = $input->json->getArray();
```

Если вы уверены, что данные должны быть именно в `$_POST` и нигде более, то получайте их именно оттуда

```
<?php
$input->post->get('title', '', 'RAW')
```

Подробнее в файле `libraries/vendor/joomla/input/src/Input.php`.

## Что умеет объект Input в Joomla?

Небольшая шпаргалка по тому, что вообще объект Input в Joomla умеет.

Свойства объекта Input:

- `get` - суперглобальный массив `$_GET`
- `post` - суперглобальный массив `$_POST`
- `request` - суперглобальный массив `$_REQUEST`
- `server` - суперглобальный массив `$_SERVER`
- `env` - `$_ENV`, переменные окружения
- `files` - `$_FILES`, загруженные файлы
- `cookie` - здесь собственно печеньки 🍪
- `json` - свойство для удобной работы с json-данными

Методы объекта `Input`:

Получаем значения с нужным нам типом данных:

- `getInt` - применяет фильтр Int, целое число
- `getUint` - применяет фильтр Uint, целое положительное число (-1823 не получим)
- `getFloat` - применяет фильтр Float, число с плавающей точкой, десятичная дробь
- `getBool` - применяет фильтр Bool, логическое true / false
- `getWord` - применяет фильтр Word, в значении только латинские буквы и нижнее подчеркивание
- `getAlnum` - alphanumeric string, сочетание букв и цифр. Полезно для токенов.
- `getCmd` - применяет фильтр Cmd к значению. Только латинские буквы, нижнее подчеркивание, тире и точка. Убирает ведущие точки.
- `getBase64` - применяет фильтр Base64 к значению. Только латинские буквы, косая черта, знак плюса и знак равно.
- `getString` - применяет фильтр String к значению. Конвертирует в чистую строку, убирает все теги и атрибуты.
- `getHtml` - применяет фильтр Html к значению. Конвертирует в строку, убирает все HTML теги и атрибуты, кроме тех, что находятся в белом списке разрешенных тегов Joomla (в общих настройках Joomla)
- `getPath` - применяет фильтр Path к значению. Конвертирует в строку и валидирует как путь до папки или файла (например path/to/file.png или path/to/dir). Не принимает абсолютный путь или путь, который заканчивается косой чертой.
- `getUsername` - применяет фильтр Username к значению. Удаляет все невалидные для имени пользователя символы (\x00, -, \x1F, \x7F, <, >, ", ', %, &)
- `getRaw` - возвращает нефильтрованные данные. Небезопасно!

Получить несколько значений сразу:

```
<?php
use Joomla\CMS\Factory;

/** @var \Joomla\CMS\Application\CMSApplication $app */
$app   = Factory::getApplication();
/** @var \Joomla\Input\Input $input */
$input = $app->getInput();

$data = $input->getArray();
```

- [Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других? в моём Telegram](https://t.me/webtolkru/234)
- [Совет по Joomla: методы и свойства объекта Input в моём Telegram](https://t.me/webtolkru/237)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": " Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/sovet-po-joomla-kak-poluchat-dannye-iz-superglobalnykh-massivov-post-get-i-drugikh",
            "name": " Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других? - WebTolk",
            "description": "На основе данных из $_GET, $_POST порой строится логика работы кода начиная от шаблона Joomla и кончая модулями и плагинами. Для работы с этими данными используется объект Input, который мы получае...",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/95",
            "name": " Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?",
            "headline": " Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?",
            "inLanguage": "ru-RU",
            "author": {
                "@type": "Person",
                "name": "Сергей Толкачев"
            },
            "thumbnailUrl": "images/blog/sovet-po-joomla-kak-poluchat-dannye-iz-superglobalnykh-massivov-post-get-i-drugikh/header-1920x1080.webp",
            "dateModified": "2024-07-17T00:00:00+00:00",
            "interactionStatistic": {
                "@type": "InteractionCounter",
                "userInteractionCount": 2778
            },
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
