I have a basic registration script. It took me forever to get to this point, but I'm getting an "error." The app is supposed to send 3 strings of login registration to a localhost phpmyadmin. The app works fine, up to the point where it will generate a error popup message, which i programmed it to do. But it does't tell me why the registration has failed.
Here is the createsuser script. It is supposed to grab variables from the text boxes and send them over to a RegisterRequest script. It waits for a response, and either kicks the user back to the main menu or creates the retry message. it create an retry message, but no error to log.
public class CreateUser extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_user);
this.setTitle("Create User");
final EditText username1 = findViewById(R.id.Createusername);
final EditText password1 = findViewById(R.id.CreatePassword);
final Switch isAdmin = findViewById(R.id.isadmin);
final Button createuser = findViewById(R.id.createuserbtn);
if (getIntent().hasExtra("com.example.northlandcaps.crisis_response")){
isAdmin.setVisibility(View.GONE);
}
createuser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username = username1.getText().toString();
final String password = password1.getText().toString();
final String isadmin = isAdmin.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("Response Value: ", response);
if (response.equals("success")){
Intent intent = new Intent(CreateUser.this, MainActivity.class);
CreateUser.this.startActivity(intent);
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(CreateUser.this);
builder.setMessage("Register Failed")
.setNegativeButton("Retry",null)
.create()
.show();
}
}
};
RegisterRequest registerRequest = new RegisterRequest(username,password,isadmin,responseListener);
RequestQueue queue = Volley.newRequestQueue(CreateUser.this);
queue.add(registerRequest);
}
});
}
Here is the registerrequest. It receives strings from CreateUser and posts them to the php script. I get no errors from this script, but there might be some
public class RegisterRequest extends StringRequest {
private static final String REGISTER_REQUEST_URL = "http://192.168.*.*:80/phptesting/Register.php";
private Map<String, String> params;
public RegisterRequest(String username, String password,String isAdmin, Response.Listener<String> listener){
super(Method.POST, REGISTER_REQUEST_URL,listener,null);
params = new HashMap<>();
params.put("username",username);
params.put("password",password);
params.put("isAdmin",isAdmin+"");
}
public Map<String, String> getparams() {
return params;
}
}
And here is the register php script.
<?php
$db_host = '192.168.*.*:3306';
$db_user = 'root';
$db_pass = '';
$db_name = 'test';
$con = mysqli_connect($db_host,'root',$db_pass,$db_name);
if($con){
echo "connection successful";
}
if (mysqli_connect_errno()) {
printf("Connect failed: %s
", mysqli_connect_error());
exit();
}
$isAdmin ="no";
$username="fakename";
$password="fakepassword";
$isAdmin = isset($_POST["isAdmin"]);
$username = isset($_POST["username"]);
$password = isset($_POST["password"]);
echo $isAdmin;
echo $username;
echo $password;
$statement = mysqli_prepare($con, "INSERT INTO cresidentials (username,password,isAdmin) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($statement,'ssi',$username,$password,$isAdmin);
mysqli_stmt_execute($statement);
if(!$statement) { printf("Prepare failed: %s
", mysqli_error($con)); }
echo "success";
?>
I appreciate all help, thanks
(Someone told me to add a Var_dump to the php script, and work backwards. (thanks riggs), so what i got as a result is this: connection successfularray(0) {
}
success
See Question&Answers more detail:
os