Codeigniter формы действий с косой чертой вместо обычных GET? - PullRequest
1 голос
/ 13 апреля 2010

Эй, так что это один из тех вопросов, который кажется очевидным, и я, вероятно, буду чувствовать себя глупо, но здесь идет речь:

Я делаю сайт CodeIgniter с поиском. Подумайте о вводе типа Google, где вы будете искать «белые лайки». У меня есть страница с результатами поиска, которая принимает URI (MySite.com/dogs/white huskies), занимает третью часть и выполняет поиск по этому термину. Я хотел бы, чтобы это было сделано в URI, а не POST, чтобы мои пользователи могли добавлять результаты в закладки.

Проблема, с которой я сталкиваюсь, заключается в том, как направить эту кнопку поиска на Mysite.com/dogs/WHATEVER ВХОДИТ Как мне получить то, что во входной части в href якоря? Я знаю, что могу сделать это с помощью javascript, но я слышал, что это плохая практика - заставлять людей иметь javascript для таких маленьких вещей.

Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 13 апреля 2010
0 голосов
/ 13 апреля 2010

CodeIgniter можно безопасно работать с $_GET переменными и сегментами URI.

Обходной путь, который я использовал в прошлом, состоит в том, чтобы собрать поисковый термин, используя POST, проанализировать необходимый URL-адрес для использования с сегментами URI и затем перенаправить пользователя на эту страницу.

$url = 'mysite.com/search/' . urlencode($_POST['query']);

redirect($url);

Это не должно влиять на SEO, но что-то вроде URL результата поиска вряд ли повлияет на SEO в любом случае. Чистые URL действительно предназначены только для постоянного содержимого. Если вы собираетесь отображать поисковый запрос на странице, не забывайте использовать xss_clean(), и несколько человек уже делали эту фатальную ошибку раньше.

0 голосов
/ 13 апреля 2010

У вас может быть промежуточная страница POST, которая собирает входные данные формы и объединяет их в действительный URL-адрес, который затем можно перенаправить. Однако я не уверен, является ли это хорошей или плохой практикой SEO, но я не вижу другого способа сделать это без некоторого вмешательства Javascript.

Возможно, вы могли бы взглянуть на промежуточную страницу POST, которая принимает значения, перенаправляет вас на / search / dog / white / huskies, но также имеет эквивалент Javascript, который делает это на лету при отправке формы и делает окно .location обновить к тому же / поиск / собака / белый / лайки?

Только мои 2 копейки стоит;)

...