Привет, я создаю приложение на андроид-студии, которое требует регистрации и входа в систему. Моя регистрация работает нормально, пока у меня возникают проблемы с моим входом, я получаю ложное логическое значение, а не истинное, даже если имя пользователя и пароль верны. PHP-файл:
`$con = mysqli_connect("localhost", "id1013905_trhtkv", "my password",` "id1013905_user"); $username = $_POST["username"]; $password = $_POST["password"]; $statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ?"); mysqli_stmt_bind_param($statement, "s", $username); mysqli_stmt_execute($statement); mysqli_stmt_store_result($statement); mysqli_stmt_bind_result($statement, $colUserID, $colName, $colUsername, $colAge, $colPassword); $response = array(); $response["success"] = false; while(mysqli_stmt_fetch($statement)){ if (password_verify($password, $colPassword)) { $response["success"] = true; $response["name"] = $colName; $response["age"] = $colAge; } } echo json_encode($response); ?>
Моя активность входа:
package com.ben.owner.say_something; import android.app.AlertDialog; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.toolbox.Volley; import org.json.JSONException; import org.json.JSONObject; public class LoginActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login_activity); final EditText etUsername = (EditText)findViewById(R.id.etUsername); final EditText etPassword = (EditText)findViewById(R.id.etPassword); final Button bLogin = (Button)findViewById(R.id.bLogin); final TextView registerLink = (TextView)findViewById(R.id.tvRegisterHere); registerLink.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class); LoginActivity.this.startActivity(registerIntent); } }); bLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String username = etUsername.getText().toString(); final String password = etPassword.getText().toString(); final Response.Listener<String>responseListener = new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonResponse = new JSONObject(response); boolean success = jsonResponse.getBoolean("success"); if (success){ String name = jsonResponse.getString("name"); int age = jsonResponse.getInt("age"); Intent intent = new Intent(LoginActivity.this, UserAreaActivity.class); intent.putExtra("name",name); intent.putExtra("username",username); intent.putExtra("age",age); LoginActivity.this.startActivity(intent); }else{ AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); builder.setMessage("Login Failed") .setNegativeButton("Retry", null) .create() .show(); } } catch (JSONException e) { e.printStackTrace(); } } }; LoginRequest loginRequest = new LoginRequest(username,password,responseListener); RequestQueue queue = Volley.newRequestQueue(LoginActivity.this); queue.add(loginRequest); } }); } }
И мой запрос на вход:
package com.ben.owner.say_something; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.toolbox.StringRequest; import java.util.HashMap; import java.util.Map; /** * Created by owner on 09/03/2017. */ public class LoginRequest extends StringRequest { private static final String LOGIN_REQUEST_URL = "https://saysomething.000webhostapp.com/Login.php"; private Map<String, String> params; public LoginRequest(String username,String password, Response.Listener<String> listener){ super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null); params = new HashMap<>(); params.put("username", username); params.put("password", password); } @Override public Map<String, String> getParams() { return params; } }