Извиняюсь, если не в тот раздел пишу, не нашел подходящего.
Собственно, запрос в названии темы. Т.е. когда передаются обычные буквы/цифры - то все нормально, но когда попадаются "$, &, \, ~" и прочая "бяка" (которую я и на клавиатуре не знаю как набить) - то часть запроса может потеряться - ссылка будет неправильная, вести не на тот адрес. Пока кроме функции base64_encode не нашел ничего...
Но с ней тоже...не все гладко. Данные получать потом нужно не $_GET, а "резкой" url строки.
urlencode()
rawurlencode()
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Игорь_Vasinsky
27.08.2013 - 20:55
ты когда принимаешь - используй 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
Хм, видимо проблема была в том, что неправильно принимаю. Решил попробовать функ. 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
27.08.2013 - 21:46
урл состоит из
протокола
домена
зоны домена
страницы
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
27.08.2013 - 21:49
ещё есть 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
Я немного не то спрашивал.
Экранирование появляется всегда или нет (когда используем $_GET['a']) ?
Странно, что если получить строку $_SERVER['REQUEST_URI'] - то нет экранирования.
$_GET['a'] - есть...
Игорь_Vasinsky
27.08.2013 - 22:04
не разузнавал... даж в голову не приходило
_____________
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
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.