2014-11-11 3 views
0

Я создаю приложение для Android и отправляю данные пользователя из приложения android на php на стороне сервера json. Но на стороне сервера я не получаю json-данные. На стороне сервера php json приходит от приложения android кажется null.Я использую метод POST для этого. Я знаю что мой метод метода POST неправилен в PHP на стороне сервера. Но я не имею никакую идею разрешить это. Пожалуйста, помогите мне. Спасибо заранее. Вот мой PHP-код для получения JSOn. Каждый раз, когда я получаю такое же сообщение Обязательные поля отсутствуют.не получает данные json в php

<?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); 
} 
?> 
+0

Пожалуйста, [не использовать '' mysql_ * функции ] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https: //wiki.php .net/гк/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). Вы также захотите [Запретить SQL-инъекцию!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

+0

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

+0

Получаете ли вы какие-либо данные? – vcanales

ответ

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...){ 
... 
... 
} 

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

Как Jay Blanchard уже упоминалось не использовать MySQL, как это, или вы будете подвергаться инъекции MySQL ...

+0

ok.I попробовать this.I никогда не использовал PHP до –

+0

Первое, что я могу посоветовать вам сделать, это напечатать на экране содержимое переменной $ _POST, написав: var_dump ($ _ПОСЛЕ); или, может быть, даже лучше (видно, что вы отправляете данные из приложения и, вероятно, не получаете доступ к странице из браузера), сделайте что-то вроде этого: echo json_encode ($ _ POST) и напечатайте на logCat результат, который вы получите. –

+0

Я могу получить массив json в logcat, но на php-странице я ничего не получаю только []. –

Смежные вопросы