Класс Request для работы с параметрами запросами
Класс Request для работы с параметрами запросами
С запросами в PHP приходиться работать постоянно. Поэтому, далее будет представлен скрипт класса Request, упрощающий работу с параметрам запроса в PHP.
Как известно в PHP есть суперглобальный массив $_REQUEST, который содержит в себе все данные GET и POST запросов.
class Request
{
private $storage; // переменная хранящая данные GET и POST
// при создании объекта запроса мы пропускаем все данные
// через фильтр-функцию для очистки параметров от нежелательных данных
public function __construct() {
$this->storage = $this->cleanInput($_REQUEST);
}
// магическая функция, которая позволяет обращатья к GET и POST переменным
// по имени, например,
// запрос - myrusakov.ru/user.php?id=Qashbs36e
// в коде - echo $request -> id
public function __get($name) {
if (isset($this->storage[$name])) return $this->storage[$name];
}
// очистка данных от опасных символов
private function cleanInput($data) {
if (is_array($data)) {
$cleaned = [];
foreach ($data as $key => $value) {
$cleaned[$key] = $this->cleanInput($value);
}
return $cleaned;
}
return trim(htmlspecialchars($data, ENT_QUOTES));
}
// возвращаем содержимое хранилища
public function getRequestEntries()
{
return $this -> storage;
}
}
Файл from.html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Input Form</title>
</head>
<body>
<form action="process.php" method = "get">
<label for = "name">Имя</label>
<input id = "name" name = "name"/>
<hr/>
<label for = "phone">Телефон</label>
<input id = "phone" name = "phone">
<input type = "submit" value = "Далее" />
</form>
</body>
</html>
Файл process.php:
<?php
spl_autoload_register();
$request = new Request(); // создаем объект класса Request
// а здесь обращаемся к значениям, заполненных пользователем
echo sprintf("Имя: %s, Телефон: %s", $request -> name, $request -> phone);
Вот такой скрипт позволит упростить работу с массивом $_REQUEST в PHP.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.