Недавно столкнулся с проблемой. Решил продолжить разработку вне работы, дома, чтобы успеть сдать проект в срок. Однако, скопированный проект не стал работать на локальном сервере. Причина заключалась в том, что определенная команда вместе с параметрами отправляется на сервер с помощью POST запроса из JavaScript jQuery. Параметры передаются в отдельной переменной в формате JSON:
config.params = '{"products":"454,103,505","category":"7"}';
На стороне сервера происходит прием параметров:
$params = $_POST[ 'params' ];
Для использования параметров их нужно перекодировать:
$params = json_decode( $params );
На данном этапе и возникла проблема. После обработки переменной $params
с помощью json_decode()
она становилась пустой.
В процессе отладки я обратил внимание, что к отправляемой строке с параметрами в формате JSON к кавычкам добавлены обратные слэши.
Оказалось, что на локальном сервере параметр magic_quotes_gpc
установлен в true
, поэтому функция json_decode()
не могла обработать строку.
Решение проблемы:
public function decode_params( & $params ) { if ( ! empty( $params ) ) { if ( get_magic_quotes_gpc() ) { $params = stripslashes( $params ); } $params = json_decode( $params ); } }
Tags: json_decode(), magic_quotes_gpc
Запись опубликована
Четверг, Июль 19, 2012 в
04:17 и находится в
JavaScript, Программирование .
Вы можете следить за ответами к этой записи через
RSS 2.0 ленту.
Вы можете оставить комментарий, или обратиться к записи со своего сайта.