|
|
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Новая напасть. Отсылаю из js json-строку в post-параметре, а в php получаю {\\\"title\\\":\\\"+asdasd\\\"}. Как это раскукожить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 01:12 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Тынц . Не забываем проверить magic_quotes_gpc , дабы не наступить на грабли в будущем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 01:27 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
vkle Тынц . Не забываем проверить magic_quotes_gpc , дабы не наступить на грабли в будущем. Ага, addslashes аж два раза у него как то смогло запуститься. Магик раз, а два? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 10:06 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Ренат, Мы же не знаем, что происходит ни на стороне клиента, ни на сервере до того момента как Shitbox2 увидел этот код... Мож и в самом деле все входные переменные не глядя через addslashes проходят, а мож жабаскрипт так формирует отправку :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 11:18 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Вся я знаю. Сам же формирую и отправляю. У клиента: Код: javascript 1. 2. 3. 4. 5. 6. Т.е. данные я отправляю в сгенерированном автоматически поле формы вместе с файлом. В PHP json_decode соответственно. Намучился уже с этим json! Каждый раз по-разному отправляется! На локальной машине одно, на одном сервере другое, на другом третье! Есть какой-нибудь универсальный способ отправки? Или можно в php-скрипт внести код, который будет править PHP.ini, чтобы вручную не делать каждый раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 12:00 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Shitbox2Или можно в php-скрипт внести код, который будет править PHP.ini, чтобы вручную не делать каждый раз?Идея, достойная барона Мюнхаузена! Вот только абсолютно не универсальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 12:16 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
А что универсальное? Даже ладно, какие настройки оптимальны на сегодняшний день для отправки json данных в utf8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 12:21 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Универсальное - проверка и установка по возможности нужных настроек. Проблема в том, что не все настройки можно установить непосредственно из скрипта. Зато, практически все можно проверить. И в соответствии с имеющимися настройками выполнять ту или иную обработку данных. Правка же php.ini мало приемлема из-за ограничений. На шаред-хостинге править общий конфиг никто не даст. Зато, в зависимости от вида установки PHP и вебсервера можно управлять некоторыми настройками либо через .htaccess (модуль), либо через php.ini в папке выполняемого скрипта (при использовании suphp), либо через отдельный файл конфигурации, либо через панель управления хостингом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 13:00 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Ну, а конкретно для json какие должны быть настройки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 13:25 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Ничего особенного json собой не представляет. Обычная строка текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 14:48 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Да уж, обычная... В этом случае помогло json_decode(stripslashes($_POST['data']), true); В аналогичном случае на другом сервере (правда там форма не генерировалась автоматически) пришлось использовать json_decode(htmlspecialchars_decode($_POST['data']), true); Если же не загонять json-строку в $_POST['data'], а передавать напрямую функцией $.ajax, то работает обычный json_decode, причем работает даже если предварительно закодировать строку encodeURIComponent(). Так что обычную json-строку сервер кодирует как ему вздумается, то специальные символы добавит, то экранирует слешами, то удалит чего-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 15:26 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Shitbox2то удалит чего-то...Упс! И чего-же удаляет? Есть пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 16:39 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Ну, если мы кодируем в encodeURIComponent(), а json_decode это нормально обрабатывает, значит заменяет там что-то) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 20:11 |
|
||
|
[php] Как отключить экранирование
|
|||
|---|---|---|---|
|
#18+
Shitbox2кодируем в encodeURIComponent(), а json_decode это нормально обрабатываетК чему эти хвосты в одной куче? Рассматривайте отдельно каждый из этапов. Что имеете на входе, что получаете на выходе. С хвостами получается несколько этапов передачи данных. И, потенциально, на каждом из них данные могут быть тем или иным образом преобразованы или не тронуты. Потому есть смысл рассматривать чистую передачу данных в php или, как максимум, от клиента -> через вебсервер -> в php. Вполне возможно что после кодирования "неугодных" символов не окажется во входной строке в явном виде, и она не будет преобразована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38039431&tid=1464428]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 458ms |

| 0 / 0 |
