Класс для работы с $_GET и $_POST (PHP)
11.01.2018 12:00:57 pm
Как то я делал проект, который теперь мне не особо нужен, даже скорее не нужен вообще и пока в моих планах нет место для него... И я решил поделиться работами (решениями), которые написаны били мной при создании этого проекта. Я буду рассказывать о них в разных темах и выкладывать код. Начну с класса для работы с $_GET и $_POST. Класс я назвал request, он небольшой, занимает всего 34 строки (не считая
Сразу пишу код всего класса:
Методы класса я сделал статическими, если кого то испытывает негативное отношение к статическим методам, то можете это дело легко поправит, достаточно удалить слово
Заменить на:
Разумеется, что после удаления
Теперь, давайте первый разберем метод класса get(). Из названия метода понятно, что он служит для получения чего то, получает он, как POST, так и GET параметры, все сразу или какой то конкретный. Например, если нам надо получить все данные POST, то делаем так:
Если стоит задача получить одно значение из POST, то так:
Вместо
С получением данных с GET аналогично, параметр только другой. Для получения всех параметров:
И для одного, конкретного параметра:
Метод пропускает все полученные данные через функцию htmlspecialchars, которая преобразует все спецсимволы в сущности, что делает данные безопасными.
Второй метод класса и на данный момент последний это submit. Служит он для проверки была ли нажата кнопка или нет. Например, у нас форма регистрации, где кнопка "Зарегистрироваться" выглядит так:
Проверка осуществляется так:
Обратите внимание на то, что атрибут кнопки
Теперь расскажу, как подключиться к классу: если вы не удаляете слово
Если
И обращаемся к методам класса так:
То есть вместо:
Вот и все! Надеюсь информация оказалась вам полезной!
<?php
), но как мне показалось работать с ним очень удобно, надеюсь и вам он будет удобен!Сразу пишу код всего класса:
class request
{
public static function get($method, $thing = null)
{
if ($method == 'get' && !empty($_GET) || $method == 'post' && !empty($_POST))
{
$data = ($method == 'get') ? $_GET : $_POST;
if (!empty($thing))
{
return $data[htmlspecialchars($thing, ENT_QUOTES)];
}
foreach ($data as $key => $element)
{
$element = trim($element);
$data[$key] = htmlspecialchars($element, ENT_QUOTES);
}
return $data;
}
return false;
}
public static function submit($submit)
{
if (!empty($_POST[$submit . '_submit']))
{
return true;
}
return false;
}
}
Методы класса я сделал статическими, если кого то испытывает негативное отношение к статическим методам, то можете это дело легко поправит, достаточно удалить слово
static
, то есть, это:public static function
Заменить на:
public function
Разумеется, что после удаления
static
, обращаться к методам придется по другому.Теперь, давайте первый разберем метод класса get(). Из названия метода понятно, что он служит для получения чего то, получает он, как POST, так и GET параметры, все сразу или какой то конкретный. Например, если нам надо получить все данные POST, то делаем так:
$data = request::get('post');
Если стоит задача получить одно значение из POST, то так:
$data = request::get('post', 'val');
Вместо
val
пишем название поля, от куда необходимо получить значение.С получением данных с GET аналогично, параметр только другой. Для получения всех параметров:
$data = request::get('get');
И для одного, конкретного параметра:
$data = request::get('get', 'val');
Метод пропускает все полученные данные через функцию htmlspecialchars, которая преобразует все спецсимволы в сущности, что делает данные безопасными.
Второй метод класса и на данный момент последний это submit. Служит он для проверки была ли нажата кнопка или нет. Например, у нас форма регистрации, где кнопка "Зарегистрироваться" выглядит так:
<input type="submit" name:"registration_submit" value="Зарегистрироваться">
Проверка осуществляется так:
if (request::submit('registration'))
{
// Какие то действия
}
Обратите внимание на то, что атрибут кнопки
name
прописан registration_submit
, а при проверки название кнопки пишем так registration
(без _submit
).Теперь расскажу, как подключиться к классу: если вы не удаляете слово
static
(статические методы), то вам достаточно заинклудить файл класса к тем файлам, где будите использовать класс:include('request.php');
Если
static
удаляете, то подключаемся к файлу при помощи include()
, затем создаем объект $request
:include('request.php');
$request = new request();
И обращаемся к методам класса так:
$data = $request->get('post');
То есть вместо:
request::
пишем: $request->
.Вот и все! Надеюсь информация оказалась вам полезной!
- Жалоба