Я создаю модуль регистрации пользователей в 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 пуста. Любые решения, пожалуйста?
Задача ещё не решена.
Других решений пока нет …