Не получить данные JSON в PHP

0

Я создаю приложение android и отправляю данные пользователя из приложения Android на php на стороне сервера JSON. Но на стороне сервера я не получаю данные JSON. На стороне сервера php JSON поступает из приложения для Android, кажется null. Для этого я использую метод POST. Я знаю, что мой метод POST-кода неверен в PHP на стороне сервера. Но я не собираюсь это решать.

Вот мой PHP-код для получения JSON. Каждый раз, когда я получаю такое же сообщение:

Обязательные поля отсутствуют

Код:

<?php

/*
* Following code will create a new user row
* All user details are read from HTTP Post Request
*/

// array for JSON response
$response = array();
print_r($_POST);
// check for required fields
if (isset($_POST['Firstname']) && isset($_POST['Lastname']) && isset($_POST['Username'])     && isset($_POST['Email']) && isset($_POST['Password']) && isset($_POST['Country']) &&     isset($_POST['Mobile'])) {
echo('bhargavi');
$Firstname = $_POST['Firstname'];
$Lastname = $_POST['Lastname'];
$Username = $_POST['Username'];
$Email = $_POST['Email'];
$Password = $_POST['Password'];
$Country = $_POST['Country'];
$Mobile = $_POST['Mobile'];

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// mysql inserting a new row
$result = mysql_query("INSERT INTO     users(Firstname,Lastname,Username,Email,Password,Country,Mobile)     VALUES('$Firstname','$Lastname','$Username','$Email','$Password','$Country','$Mobile')");

// check if row inserted or not
if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "User successfully Registered.";

    // echoing JSON response
    echo json_encode($response);
} else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "Oops! An error occurred.";

    // echoing JSON response
    echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
}
?>
Теги:

1 ответ

0
Лучший ответ

Вероятно, вы должны декодировать строку json перед проверкой $ _POST ['Firstname'] и т.д....

Скажем, вы отправляете из приложения строку, называемую данными. На php вы должны сделать что-то вроде этого:

$data = json_decode($_POST['data']);
and then check if $data contains the data you neeed by doing:
if (isset($data->Firstname) && isset($data->Lastname) etc...){
...
...
}

Если я могу дать вам совет, было бы лучше, если бы вы проверяли целостность данных непосредственно из своего приложения, а не делали это на своем сервере, это дало бы шанс зарезервировать некоторые серверные ресурсы...

Как уже упоминал Джей Бланчард, не используйте mysql, как это, или вы будете подвержены действию mysql...

  • 0
    Хорошо. Я пытаюсь это. Я никогда не использовал PHP раньше
  • 0
    Первое, что я могу посоветовать вам сделать, это напечатать на экране содержимое переменной $ _POST, написав: var_dump ($ _ POST); или, может быть, даже лучше (видно, что вы отправляете данные из приложения и, вероятно, не обращаетесь к странице из браузера), сделайте что-то вроде этого: echo json_encode ($ _ POST) и напечатайте в logCat полученный результат.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню