Android: использование OkHttp с PHP & amp; MySQL

Я создаю модуль регистрации пользователей в Android. Вот файл RegistrationManager.java, который занимается регистрацией пользователей в базе данных путем отправки запроса POST на сервер.

import com.marshall.opensurvey.sqlite.user.User;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;

import java.io.IOException;

// user controller class specified in registration activities.
public class RegistrationManager {

private OkHttpClient client = new OkHttpClient();
private final String SERVER_URL = ServerURL.URL_REGISTER;

public static boolean error;

// register a new user into mysql database
public void registerUserIntoMySQL(final User newUser) {
RequestBody body = new FormEncodingBuilder()
.add("tag", "register")
.add("email", newUser.getEmail())
.add("name", newUser.getName())
.add("password", newUser.getPassword())
.build();

Request request = new Request.Builder().url(SERVER_URL).post(body).build();

Call call = client.newCall(request);

call.enqueue(new Callback() {

@Override
public void onFailure(Request request, IOException e) {

}

@Override
public void onResponse(Response response) throws IOException {

}
});
}
}

Таким образом, когда сервер получает тег с именем «register», сервер должен зарегистрировать нового пользователя в базе данных. Это определено в файле Register.php.

<?php

if(isset($_POST['tag']) && $_POST['tag'] != '') {
$tag = $_POST('tag');

require_once 'mysql/DB_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => FALSE);

if($tag == 'register') {
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['password'])) {

// receiving the post params
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];

// check if user is already existed with the same email
if ($db->userExists($email)) {

// user already exists
$response["error"] = TRUE;
$response["error_msg"] = "User already exists: " . $email;
echo json_encode($response);

} else {
// create a new user.
$user = $db->storeUser($name, $email, $password);
if ($user) {
// user stored successfully
$response["error"] = FALSE;
$response["uid"] = $user["unique_id"];
$response["user"]["name"] = $user["name"];
$response["user"]["email"] = $user["email"];
$response["user"]["created_at"] = $user["created_at"];
$response["user"]["updated_at"] = $user["updated_at"];
echo json_encode($response);
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Unknown error occurred in registration!";
echo json_encode($response);
}
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required parameters (name, email or password) is missing!";
echo json_encode($response);
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Inapproriate tag.";
echo json_encode($response);
}

} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required tag is missing!";
echo json_encode($response);
}
?>

Так что это коды, которые я сделал до сих пор, но я считаю, что база данных MySQL пуста. Любые решения, пожалуйста?

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

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