Я использую sencha touch и отправляю данные на php REST сервер, чтобы сохранить их в базе данных, в firebug я вижу параметры, которые sencha touch отправляет на php, но в php у меня есть такой код:
parse_str(file_get_contents("php://input"),$post_vars);
$info=$post_vars['customers'];
$data=json_decode(stripslashes($info),true);
Json_decode возвращает NULL, get_magic_quotes_gpc выключен. Я также пробовал utf8_encode, но всегда получал NULL, пробовал var_dump и в ответ получал дополнительный текст:
array(1) {
["customers"]=>
string(50) "{"c_name":"test","c_tel":"08-05852821","id":"112"}"}
Я не знаю, как продолжить, прежде чем var_dump пост содержит:
{"success":{"customers":"{\"c_name\":\"test\",\"c_tel\":\"08-05852821\",\"id\":\"112\"}"}}
Я попробовал стрип-слэш, но я также получил NULL …
Любая идея…
На основании вашего комментария я бы получил доступ $_POST
непосредственно:
$info = json_decode($_POST['customers'], true);
echo $info['c_name'];
Есть три варианта передачи Джейсона.
index.php?data={success:true}
), это работает только для коротких строк json.x-www-form-urlencoded
)Только последние будут доступны через php://Input
Кажется, вы используете Второе.