|
|
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Попался на том, что unserialize заменяет + на пробел. С чего бы это? Она ожидает, что-ли, что данные должны быть urlcode? Пробовал unserialize(urlencode($data)), но ничего не вышло. Из-за чего может быть проблема с заменой +. Если ее не обойти, то как еще дополнительно нужно кодировать строку в JS и раскодировать в PHP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 20:34:38 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Shitbox2, если через js работаете - используйте json_decode/encode для преобразований обьекта в JS представление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 21:31:09 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Пробовал, но не нашел в ни в js, ни jQuery функции для преобразования объекта в json. И задача стоит именно в передаче объекта из JS в PHP, обратно-то все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 21:59:21 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Shitbox2Пробовал, но не нашел в ни в js, ни jQuery функции для преобразования объекта в json. И задача стоит именно в передаче объекта из JS в PHP, обратно-то все работает. Понятно. Сталкивался. На самом деле, имеется целая куча стандартных преобразовалок, но лично я не заморачиваюсь, просто плюсик в какую-нибудь кракозябру перекодирую, а потом - обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 22:08:38 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Ну да, есть в JS JSON.stringify и на выходе даже json строка получается. Но json_decode пхп-ный ее не берет почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 22:32:46 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
А нет, берет, только в json_decode нужно второй параметр true указать. Но плюсы все равно не отображаются! Причем, это только то, что заметил. А если там и другие символы пропадают? Не хотелось бы, чтобы потом вылезло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 22:49:14 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 07:45:24 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Это какое-то издевательство!!! Кодирую в JS строку с помощью encodeURIComponent или escape, PHP все нормально раскодирует, но знаки "+" все равно заменены на пробелы! Везде UTF-8. Что не так, не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 11:54:20 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
пример данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 11:55:38 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 11:56:54 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
авторЗамечание: rawurldecode() не декодирует символ сложения ('+') в пробелы. Это делает urldecode(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 11:57:10 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Сделал! Но не разобрался. В общем, на стороне JS должно быть: Код: javascript 1. (escape не подходит, т.к. не шифрует "+") На стороне PHP: Код: php 1. И все! Во время передачи в скрипт строка сама раскодировалась (почему?), а ПХП-ная функция urldecode только и делала, что плюсы на пробелы заменяла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 12:12:53 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Потому что в ней это заложено, я выше привел ссылку.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 12:13:40 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Hett, по ссылке не понял почему. Там про rawurldecode... А у меня-то работает, вообще, без этих функций. Т.е. JS отправляет строку в URL-формате, а в $_POST она уже содержится в нормальном виде без всяких манипуляций с моей стороны. Может это из-за настроек PHP или сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 13:38:53 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
День добрый, столкнулся сегодня с такой же проблемой: Кодирую объект в JSON (перепробовал разными способами, но остановился на $.toJSON из jquery.json-2.3.min.js). Отдаю аяксом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но после выполнения json_decode на сервере все символы '+' заменяются на пробелы. Есть идея выставить костыль: кодировать знак + какой-нибудь последовательностью, а потом уже эту последовательность снова преобразовывать, но это ведь как-то глупо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 14:14:48 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. мош так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 14:36:42 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
нет, я выложил рабочий код. Но, в принципе, сути это не меняет: что без указания dataType, что с ним... Сейчас тестирую и обнаружил странную вещь: символ '+' теряется при передаче данных, т.е. в $_POST['data'] его уже нет (я его возвращал в js: echo $_POST['data'], но, думаю, тут потеряться ничего не могло) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 14:55:57 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Ну и уже описанным выше способом: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 15:03:35 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Ну вообще-то все логично. А чем мой вариант не нравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 21:16:14 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Илья209, не очень понимаю, зачем в вашей строке ... 'data="' ... +'"', но, думаю, если укажете свойство как 'data': func(...), то можно без кавычек обойтись. Hett, а почему ваш способ должен работать? Потому что кодировка указана? А если везде-везде и на сервере и в ПХП и сами странички в UTF-8, а в настройках Аякса не прописать напрямую, разве уйдет в другой кодировке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 02:28:33 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
А почему он должен не работать? Жиквери позволяет передавать объекты в качестве параметров запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 07:36:28 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Кодировка там и была, я лишь немножко поправил код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 07:36:40 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Hett, вот мой вариант, который обрезал "+" без encodeURIComponent. Такой же как и ваш Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 11:37:38 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Я вот не поленился и накидал небольшой примерчик Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. и все работает нормально, что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 13:13:02 |
|
||
|
PHPшная функция unserialize удаляет знак +
|
|||
|---|---|---|---|
|
#18+
Hett, да, в примере все работает, как не изголялся. У меня в такой комбинации — нет. Проследил всю цепочку, но все равно не понял в чем дело. Может из-за того, что у меня редиректы везде настроены... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 15:02:27 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37966711&tid=1464678]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
235ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 579ms |

| 0 / 0 |
