[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как через Get передать любые символы?
alted
Извиняюсь, если не в тот раздел пишу, не нашел подходящего.

Собственно, запрос в названии темы. Т.е. когда передаются обычные буквы/цифры - то все нормально, но когда попадаются "$, &, \, ~" и прочая "бяка" (которую я и на клавиатуре не знаю как набить) - то часть запроса может потеряться - ссылка будет неправильная, вести не на тот адрес. Пока кроме функции base64_encode не нашел ничего...

Но с ней тоже...не все гладко. Данные получать потом нужно не $_GET, а "резкой" url строки.
twin
urlencode()
rawurlencode()

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Игорь_Vasinsky
ты когда принимаешь - используй urldecode()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
alted
Хм, видимо проблема была в том, что неправильно принимаю. Решил попробовать функ. urlencode(). Спс.

Взял для пробы запрос вида - \\AAA*/E\\A\/''
Если глянуть именно код ссылки после urlencode() получилось: %5C%5CAAA%2A%2FE%5C%5CA%5C%2F%27%27

Принимаю: $a = $_GET['a']; (переменная стала равна $a = \\\\AAA*/E\\\\A\\/\'\' )

Интересно, что %5C%5CAAA%2A%2FE%5C%5CA%5C%2F%27%27 = \\AAA*/E\\A\/'', функ. urlencode() ничего не экранирует, в строке в браузере тоже ничего не заэкранировано => экранирует все $a = $_GET['a']....

Выходит, что "сложные url", лучше обрабатывать при помощи $_SERVER['REQUEST_URI'] ну и далее регуляркой вытаскивать все нужные переменные из строки...?
Игорь_Vasinsky
урл состоит из
протокола
домена
зоны домена
страницы
get параметров (которые щас популярно маскировать с помощью ЧПУ)

urlencode() - кодирует
urldecode() - декодирует

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
ещё есть parse_url()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
alted
Я немного не то спрашивал.

Экранирование появляется всегда или нет (когда используем $_GET['a']) ?

Странно, что если получить строку $_SERVER['REQUEST_URI'] - то нет экранирования.
$_GET['a'] - есть...
Игорь_Vasinsky
не разузнавал... даж в голову не приходило

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.