2010-11-17 3 views
2

Я создаю небольшой сценарий поиска для своего сайта. Мне нужно отправить данные методом get, потому что POST он станет действительно беспорядочным, поскольку мне нужно показать много страниц результатов поиска.Могу ли я отправить любого персонажа методом get в php?

Итак, мой вопрос: могу ли я использовать метод get напрямую? означает, что мне нужно кодировать URL-адрес или любую другую вещь? Я проверил его в современных браузерах. Он работает просто отлично ..

Благодаря

Edit: UrlEncode используется при кладя переменных в URL.

Я отправляю свою форму поиска с помощью метода = 'get'. Затем я получаю переменную и выполняю поисковый запрос и создаю новые ссылки на страницы с переменными данными. - Длина, размер не проблема. U люди, предлагающие мне использовать функцию urlencode. при создании новых ссылок?

+1

HTTP GET ограничен длиной 2KiBytes – stillstanding

+1

@stillstanding - Технически GET не является пределом, но рассматриваемый браузер - ie6 barfs с URL-адресами более 1024 символов. Если я правильно помню, т. Е. Поддерживал до 4k. Apache может обрабатывать практически все. Тем не менее, если вы приближаетесь к этой длине данных, вам, вероятно, нужно подумать об изменении своего подхода. Это не то, для чего предназначался GET. – Basic

ответ

4

Вы можете и должны использовать urlencode() для данных, которые могут содержать пробелы и другие URL-недружественные символы.

http://php.net/manual/en/function.urlencode.php

+1

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

2

Необходимо URL-адрес Кодировать параметры по URL-адресу, например http://www.example.com/MyScript.php?MyVariable=%3FSome%20thing%3F.

Помните, что существует ограничение на количество данных, которые могут быть отправлены через GET - более ограничительные в старых браузерах. Если я правильно помню, IE6 имеет ограничение на 1024 символа в URL-адресе, поэтому, если вы думаете, что собираетесь это преодолеть, подумайте об использовании POST или вы можете исключить некоторых пользователей.

2

Вы должны использовать urlencode($variable) (Link) перед отправкой переменной (несмотря на то, что браузер обычно заботится об этом) и urldecode ($variable) (Link) после его получения, таким образом, вы можете быть уверены, что специальные символы будут правильно обработано.

+0

Исправьте меня, если я ошибаюсь Я не использовал PHP в то время, но если я правильно помню, PHP обрабатывает URL-декодирование для вас, когда он предоставляет параметры через переменные '$ _REQUEST',' $ _GET' и '$ _POST' ... – Basic

+0

хорошо, что правый – Thariama

+0

думаю тоже. Coz У меня нет проблем при обработке моего сложного алгоритма поиска. Мне просто интересно, если старый браузер сделает что-то глупое при отправке формы ИЛИ просто сломает новый URL страницы, на которую отправляется форма. – Sunny

Смежные вопросы