Сокращение числа лишних переменных из HTML формы

Сделаем WEB чище.

Привет. Хочу поделиться небольшой реализацией, которая значительно поможет сделать WEB чище. Давайте представим перед глазами большую WEB HTML форму. Например, поисковую форму с большущим фильтром. При нажатии на результирующую кнопку «поиск» - на выход передается полностью содержание всей формы со всеми пустыми значениями, даже если фильтр не использовался. И весь этот хвост передается из формы в форму при перелистывании страницы. Этот большой ненужный хвост попадает в избранное, попадает в часто посещаемые страницы браузера и наводит ужас своей неочевидностью.

Result.php?&text=Вася%20Пупкин&date_begin=&date_end=&status=&on_page=&city=&email=&year=&month=&day=&money_from=&money_to=

Ааааа. Отправьте веб страницу помыться, не пугайте посетителей

 

Реализация заключается в создании простого скриптика, который будет получать весь этот мусор, чистить его и переадресовывать на нужную страницу. Да, нагрузка всего-лишь, чуть-чуть возрастет, время ожидания чуть-чуть повысится, зато в дальнейшем – при всей обработке ненужных показателей – те же ресурсы будут сэкономлены, а заодно и каждый раз, когда пользователь будет заходить по выданной ему странице

Так вот. Каждую большую GET форму проекта нужно слегка видоизменить. А именно – установить метод передачи в POST. И создать скрытое поле, в котором будет храниться страница, на которую нужно переадресовать. Все достаточно просто настраивается.

Итак, преобразуем

<form action="result.php" method="GET">

В

<form action="toget.php" method="POST">
<input type="hidden" name="acts" value="result.php">

И создаем файл toget.php с содержанием

<?php
if (empty($_POST['acts']))die();
$act=$_POST['acts'];
unset($_POST['acts']);
foreach ($_POST as $key=>$value){
    if ($value==='')unset($_POST[$key]);
}
$act.='?'.urldecode(html_entity_decode(http_build_query($_POST)));
header('location: '.$act);

Как видим, все очень просто. Если в какой-либо форме параметр acts уже используется – можно его заменить на что-то другое. Если форма одна – можно вообще от него отказаться. Все очень гибко.

Один миниатюрный файл, а сколько счастья. Сделаем WEB чище

Result.php?&text=Вася%20Пупкин

Данный метод уже используется на авито и во всех моих проектах.

Спасибо за внимание

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 409
  • Комментариев: 0
  • Создан: 07.05.2013 15:56

Комментарии (0)