Как декодировать данные json из метода post для приложения Android в php?

Я разрабатываю приложение, в котором я передаю учетные данные, а затем передаю их методом post. На этой странице я хочу получить доступ к regno и передать значение, которые были заполнены на странице входа в систему. Но я не получаю значения. Я попытался отобразить значения как $ data-> regno, но получил значение Null. Пожалуйста, скажите мне, что я делаю не так.

<?php

ini_set('display_errors', '0');
error_reporting(0);
require_once("include/db.php");
class mysendclass{
public $name="Invalid";
public $priority=-1;
public $url="";
}
class myrecclass{
public $regno="";
public $pass="";
}
$e=new mysendclass();
$g=new myrecclass();
if(isset($_POST))
{
$data=json_decode(file_get_contents('php://input'));
foreach ($data AS $key => $value) $g->{$key} = $value;
$query = "SELECT priority, name, url FROM users WHERE regno='{$data->regno}' AND pass='{$data->pass}' LIMIT 1";
echo ($query);
$res = mysql_query($query, $conn) or die(mysql_error());
$found = mysql_fetch_array($res);
echo ($found);
if($found)
{
$e->name=$found['name'];
$e->priority=$found['priority'];
$e->url=$found['url'];//url

}
echo json_encode($e);
}

?>

Когда я отправляю учетные данные, я получаю это, несмотря на публикацию правильных учетных данных из базы данных:

{"name":"Invalid","priority":-1,"url":""}

3

Решение

использовать этот..

<?php
$abc = array();
$abc['my_first_name'] = "Suresh";
$abc['my_last_name'] = "Kumar";
echo json_encode($abc);
?>

возвращать действительный JSING STING

{"my_first_name":"Suresh","my_last_name":"Kumar"}

Это простой пример для вашего понимания ..
В вашем запросе вы кодируете объект, а не массив, я не уверен, но я думаю, что это ваша проблема
пожалуйста, попробуйте это …

<?php

ini_set('display_errors', '0');
error_reporting(0);
require_once("include/db.php");
class mysendclass{
public $name="Invalid";
public $priority=-1;
public $url="";
}
class myrecclass{
public $regno="";
public $pass="";
}
$records = array();
$e=new mysendclass();
$g=new myrecclass();
if(isset($_POST))
{
$data=json_decode(file_get_contents('php://input'));
foreach ($data AS $key => $value) $g->{$key} = $value;
$query = "SELECT priority, name, url FROM users WHERE regno='{$data->regno}' AND pass='{$data->pass}' LIMIT 1";
echo ($query);
$res = mysql_query($query, $conn) or die(mysql_error());
$found = mysql_fetch_array($res);
echo ($found);
if($found)
{
$records['name']=$found['name'];
$records['priority']=$found['priority'];
$records['url']=$found['url'];//url

}
echo json_encode($records);
}

?>
2

Другие решения

Используйте массив в качестве параметра в функции json_encode () вместо объекта.

0

По вопросам рекламы [email protected]