Я начинаю сборку простой Регистрация с использованием Android Studio 3.5
org.json.jsonexception Значение br типа java.lang.string не может быть преобразовано в jsonobject
Здесьмой Activity_Register
register.php
<?php
$response = array();
include 'db_connect.php';
include 'functions.php';
//Get the input request parameters
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); //convert JSON into array
//Check for Mandatory parameters
if(isset($input['password']) && isset($input['full_name']) && isset($input['email']) && isset($input['phone'])){
$password = $input['password'];
$fullName = $input['full_name'];
$email = $input['email'];
$phone = $input['phone'];
//Check if user already exist
if(!userExists($email)){
//Get a unique Salt
$salt = getSalt();
//Generate a unique password Hash
$passwordHash = password_hash(concatPasswordWithSalt($password,$salt),PASSWORD_DEFAULT);
//Query to register new user
$insertQuery = "INSERT INTO sma_users(user_email,user_fullname,user_phone,password_hash, salt) VALUES (?,?,?,?,?)";
if($stmt = $con->prepare($insertQuery)){
$stmt->bind_param("ssss",$email,$fullName,$phone,$passwordHash,$salt);
$stmt->execute();
$response["status"] = 0;
$response["message"] = "User created";
$stmt->close();
}
}
else{
$response["status"] = 1;
$response["message"] = "User exists";
}
}
else{
$response["status"] = 2;
$response["message"] = "Missing mandatory parameters";
}
echo json_encode($response);
?>
Activity_Register.java
public class Activity_Register extends AppCompatActivity {
private static final String KEY_STATUS = "status";
private static final String KEY_MESSAGE = "message";
private static final String KEY_FULL_NAME = "full_name";
private static final String KEY_EMAIL = "email";
private static final String KEY_PHONE = "phone";
private static final String KEY_PASSWORD = "password";
private static final String KEY_EMPTY = "";
private static final String KEY_EMPTY1 = "";
private static final String KEY_EMPTY2= "";
private static final String KEY_USER_ID = "user_id";
private EditText etFullName; //NAME
private EditText etPassword; //PASSWORD
private EditText etConfirmPassword; //CONFIRMPASSWORD
private EditText email; //EMAIL
private EditText phone;
//STRING
private String userid;
private String fullName;
private String password;
private String confirmPassword;
private String Email;
private String Phone;
private ProgressDialog pDialog;
private String register_url = "http://10.0.2.2/testcon/register.php";
private SessionHandler session;
//ENDING NEW IMPLEMENTATION
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
session = new SessionHandler(getApplicationContext());
setContentView(R.layout.activity__register);
etFullName = findViewById(R.id.edtUnameR);
etPassword = findViewById(R.id.edtPassR);
etConfirmPassword = findViewById(R.id.edtConfirmR);
email = findViewById(R.id.edtEmailR);
phone = findViewById(R.id.edtPhoneR);
Button register = findViewById(R.id.btnReg);
//initView();
//validator = new Validator(this);
//validator.setValidationListener(this);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
password = etPassword.getText().toString().trim();
if(password.length()<8){
etPassword.setError("Password cannot less than 8 character");
etPassword.requestFocus();
}else{
password = etPassword.getText().toString().trim();
confirmPassword = etConfirmPassword.getText().toString().trim();
fullName = etFullName.getText().toString().trim();
Email = email.getText().toString().trim();
Phone = phone.getText().toString().trim();
if(validateInputs()){
registerUser();
}
}
}
});
}
/**
* Display Progress bar while registering
*/
private void displayLoader() {
pDialog = new ProgressDialog(Activity_Register.this);
pDialog.setMessage("Signing Up.. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
/**
* Launch Dashboard Activity on Successful Sign Up
*/
private void loadDashboard() {
Intent i = new Intent(this, Activity_Login.class);
startActivity(i);
finish();
}
private void registerUser(){
displayLoader();
JSONObject request = new JSONObject();
try {
request.put(KEY_PASSWORD, password);
request.put(KEY_FULL_NAME, fullName);
request.put(KEY_USER_ID, userid);
request.put(KEY_EMAIL, Email);
request.put(KEY_PHONE, Phone);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest jsArrayRequest = new JsonObjectRequest(Request.Method.POST, register_url, request, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
pDialog.dismiss();
try {
if (response.getInt(KEY_STATUS) == 0) {
Toast.makeText(Activity_Register.this.getApplicationContext(), "Successfully registered! Please Login to Continue", Toast.LENGTH_SHORT).show();
Activity_Register.this.loadDashboard();
Activity_Register.this.finish();
} else if (response.getInt(KEY_STATUS) == 1) {
email.setError("Email Already Taken!");
email.requestFocus();
} else {
Toast.makeText(Activity_Register.this.getApplicationContext(), response.getString(KEY_MESSAGE), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
Toast.makeText(getApplicationContext(),error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
MySingleton.getInstance(this).addToRequestQueue(jsArrayRequest);
}
private boolean validateInputs() {
if (KEY_EMPTY.equals(fullName)) {
etFullName.setError("Name Required!");
etFullName.requestFocus();
return false;
}
if (KEY_EMPTY.equals(password)) {
etPassword.setError("Password Required!");
etPassword.requestFocus();
return false;
}
if (KEY_EMPTY.equals(confirmPassword)) {
etConfirmPassword.setError("Confirm Password Required!");
etConfirmPassword.requestFocus();
return false;
}
if (!password.equals(confirmPassword)) {
etConfirmPassword.setError("Password and Confirm Password does not match");
etConfirmPassword.requestFocus();
return false;
}
if (KEY_EMPTY1.equals(Email)) {
email.setError("Email Required!");
email.requestFocus();
return false;
}
if (KEY_EMPTY2.equals(Phone)) {
phone.setError("Phone Number Required!");
phone.requestFocus();
return false;
}
return true;
}
}
До этого моя регистрацияФорма работает. Но я хочу добавить еще один атрибут, который необходимо зарегистрировать, это номер телефона. Когда я изменяю код, чтобы получить телефон. Ошибка вышла. Я проверил код, но не вижу, какая строка неправильная. Когда я удаляю любой var phone в register.php, работающий отлично вставляю в базу данных. Thankyou