DANFA

Класс для работы с $_GET и $_POST (PHP)

PHP
Как то я делал проект, который теперь мне не особо нужен, даже скорее не нужен вообще и пока в моих планах нет место для него... И я решил поделиться работами (решениями), которые написаны били мной при создании этого проекта. Я буду рассказывать о них в разных темах и выкладывать код. Начну с класса для работы с $_GET и $_POST. Класс я назвал request, он небольшой, занимает всего 34 строки (не считая <?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->.

Вот и все! Надеюсь информация оказалась вам полезной!