|
|
|
| Если при выводе результатов поиска использовать постраничную навигацию, то в ссылках на страницы приходится GETом передавать "искомые слова", которые первоночально были переданы POSTом.
Вопрос: Как избежать данную передачу GETом?
Может записывать в файл или БД или в сессии?
Скажите, никто не морочился по этому поводу?
Я понимаю, что, в целом, здесь нет ничего страшного, но, мне кажется, это не красиво.
Я для красоты строки иногда использую RewriteEngine on и RewriteRule с определенными выражениями в htaccess, но здесь, мне кажется, должен быть другой путь. | |
|
|
|
|
|
|
|
для: aetern
(26.07.2009 в 20:55)
| | Всегда GET-ом данные передают для постраничной навигации, адресная строка нужна для работы, а не для красоты :) | |
|
|
|
|
|
|
|
для: cheops
(26.07.2009 в 20:59)
| | Для навигации - возможно, а в целом - я не согласен.
Дело даже не в красоте, вот несколько слов в защиту "читабельного адреса" (например, http://www.example.ru/news.html или http://www.example.ru/news/17), т.е. без GETа:
- не раскрывается технология создания страницы (PHP, HTML и т.д.);
- рабочие URLы при изменении языка программирования (например, на ASP);
- копирование ссылок для XHTML (при GETе необходимо убирать &);
- нет пропуска сгенерированных страниц поисковыми роботами;
- не сбивает с толку посетителей;
Честно скажу, что это информация из книги Д.Д.Харрингтона "PHP Hacks". | |
|
|
|
|
автор: Трианон (26.07.2009 в 21:29) |
|
|
для: aetern
(26.07.2009 в 20:55)
| | делали. Хотя и по значимой причине, а не из-за превратного понимания красоты.
тема 27514 | |
|
|
|
|
|
|
|
для: Трианон
(26.07.2009 в 21:29)
| | Ну, делать навигацию как в phpMyAdmin и передавать страницы POSTом - это уж на самый крайняк. Ладно, будем GETом.
Тогда такой вопрос:
При поиске и передаче нескольких слов на этом форуме между словами используется символ '+'.
Насколько это верно? А а если я ищу "C++"?
Скажите, кто как передает GETом несколько слов в одной переменной? | |
|
|
|
|
|
|
|
для: aetern
(26.07.2009 в 22:02)
| | Рад, что здравый смысл взял верх.
RFC-1738
rawurlencode() | |
|
|
|
|
|
|
|
для: Trianon
(26.07.2009 в 23:09)
| | Так это закодированный пробел! Почитаю, а после поделюсь идеями. | |
|
|
|
|
|
|
|
для: Trianon
(26.07.2009 в 23:09)
| | Скажите, а насколько необходимо использовать URL-фунции, в каких случаях это действительно себя оправдывает? | |
|
|
|
|
|
|
|
для: aetern
(27.07.2009 в 22:06)
| | Что такое URL-функции? | |
|
|
|
|
|
|
|
|
для: aetern
(27.07.2009 в 22:57)
| | Я не вижу смысла в этом объединении.
Каждая из функций используется тогда, когда в ней оказывается целевая необходимость. | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2009 в 22:59)
| | Я не имел в виду их общее использование.
Задам вопрос по другому. Когда (пример) может возникнуть необходимость использования функций rawurldecode/rawurlencode, а также когда (пример) функций urldecode/urlencode? | |
|
|
|
|
|
|
|
для: aetern
(27.07.2009 в 23:06)
| | Еще раз. Когда потребуется выполнить преобразование, за которое соответствующая функция отвечает. | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2009 в 23:20)
| | rawurldecode - Функция декодирует URL-строки, закодированные в безопасное представление.
rawurlencode - Функция кодирует URL в безопасное представление (в соответствии с RFC1738).
urldecode - Функция декодирует строку с URL, закодированную в безопасное представление
urlencode - Кодирует URL в безопасное представление
В чем заключается безопасность представления? Чем эта кодировка безопаснее? И еще, ведь браузеры во много самостоятельно осуществляют кодировку. Так в чем же смысл использования этих функций.
Вы меня извините за настойчивость, но я, видимо, что-то не понимаю, не смотря на Ваши ответы. Будьте добры, раскройте свой ответ, если это возможно. | |
|
|
|
|
|
|
|
для: aetern
(27.07.2009 в 23:57)
| | Я не очень понимаю, зачем Вы цитируете эту туфту.
Есть мануал (php.net/имяфункции), его и смотрите. Если по нему есть вопросы (конкретные) - попробую ответить... | |
|
|
|
|
|
|
|
для: Trianon
(28.07.2009 в 00:03)
| | Почитал, пока вопросов нет. Спасибо. | |
|
|
|
|
|
|
|
для: aetern
(26.07.2009 в 20:55)
| | Если очень хочется, то можно и постом. Тогда будет строчка вида site.ru/search , а поисковый запрос хранить в сессии. Я когда-то так издевался над поиском, создавал дополнительный файл, который принимал POST данные, сохранял их в сессию и делал редирект на site.ru/search. Я хотел добиться, чтоб при нажатии на "поиск", там висели последние результаты. | |
|
|
|