注册错误:java.lang.string类型的值br无法转换为jsonobject
我开始使用Android Studio 3.5构建简单注册 无法将java.lang.string类型的org.json.jsonexception值br转换为jsonobject 这是我的活动登记簿 register.php注册错误:java.lang.string类型的值br无法转换为jsonobject,java,android,mysql,json,jsonobjectrequest,Java,Android,Mysql,Json,Jsonobjectrequest,我开始使用Android Studio 3.5构建简单注册 无法将java.lang.string类型的org.json.jsonexception值br转换为jsonobject 这是我的活动登记簿 register.php <?php $response = array(); include 'db_connect.php'; include 'functions.php'; //Get the input request parameters $inputJSON = file_
<?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);
?>
活动\u 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;
}
}
公共类活动\u寄存器扩展AppCompatActivity{
私有静态最终字符串密钥\u STATUS=“STATUS”;
私有静态最终字符串键\u MESSAGE=“MESSAGE”;
私有静态最终字符串键\u FULL\u NAME=“FULL\u NAME”;
私有静态最终字符串密钥\u EMAIL=“EMAIL”;
专用静态最终字符串键\u PHONE=“PHONE”;
私有静态最终字符串密钥\u PASSWORD=“PASSWORD”;
私有静态最终字符串密钥_EMPTY=“”;
私有静态最终字符串密钥_EMPTY1=“”;
私有静态最终字符串密钥_EMPTY2=“”;
私有静态最终字符串密钥\u USER\u ID=“USER\u ID”;
私有EditText etFullName;//名称
私有EditText etPassword;//密码
私有EditText etConfirmPassword;//CONFIRMPASSWORD
私人编辑文本电子邮件;//电子邮件
私人文本电话;
//串
私有字符串用户标识;
私有字符串全名;
私有字符串密码;
私有字符串确认密码;
私人字符串电子邮件;
私人电话;
私人对话;
专用字符串寄存器\u url=”http://10.0.2.2/testcon/register.php";
私有会话处理程序会话;
//结束新的实施
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
session=newsessionhandler(getApplicationContext());
setContentView(R.layout.activity\u寄存器);
etFullName=findviewbyd(R.id.edtUnameR);
etPassword=findviewbyd(R.id.edtPassR);
etConfirmPassword=findviewbyd(R.id.edtConfirmR);
email=findviewbyd(R.id.edtmailr);
phone=findViewById(R.id.edtPhoneR);
按钮寄存器=findViewById(R.id.btnReg);
//initView();
//验证器=新验证器(此);
//setValidationListener(这个);
register.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
password=etPassword.getText().toString().trim();
if(password.length()