Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   json_decode не работает на сервере (https://javascript.ru/forum/server/29488-json_decode-ne-rabotaet-na-servere.html)

aleks_lv 29.06.2012 21:40

json_decode не работает на сервере
 
На сервер AJAX отсылает JSON данные POST методом в таком виде
form={"day":"2012-06-05","text":"heloo "}

На сервере PHP скрипт ну пусть такой
if (function_exists('json_decode')) {
  $form=$_POST['form']; 
  $obj=json_decode($form);
  echo $obj->{'day'} ;
}

на сервере PHP Версия: 5.2.14
Ответ сервера пустой....но функция json_decode поддерживается(но не работает)
В чем может быть причина

Gvozd 29.06.2012 22:13

включите отображение ошибок

aleks_lv 29.06.2012 22:48

Notice: Trying to get property of non-object in

devote 29.06.2012 22:53

Цитата:

Сообщение от aleks_lv
В чем может быть причина

может причина в magic_quote ??
может ваша строка JSON вовсе и не JSON а такая:
form={\"day\":\"2012-06-05\",\"text\":\"heloo \"}
попробуйте вывести ее простым echo и посмотрите что она из себя представляет.

devote 29.06.2012 22:55

Попробуйте написать так:
if (function_exists('json_decode')) {
  $form = ini_get('magic_quotes_gpc') == 1 ? stripslashes( $_POST['form'] ) : $_POST['form']; 
  $obj=json_decode($form);
  echo $obj->{'day'} ;
}

aleks_lv 30.06.2012 00:16

работает...а почему так вышло ..данный переводятся в джонсон формат перед отправкой функцией JSON.stringify(arr) ... что может их как-то дополнительно на клиенте обработать

devote 30.06.2012 00:19

Цитата:

Сообщение от aleks_lv
что может их как-то дополнительно на клиенте обработать

их не клиент обрабатывает, а сервер при получении экранирует данные. Это некая защита что бы не навредить. Но обычно ее все выключают так как нагрузка на серв ненужная, а данные программист сам должен проверять.


Часовой пояс GMT +3, время: 20:12.