2016-05-11 9 views
0

Ich habe versucht, ein Login-Modul nach der Registrierung in MySQL zu erstellen, aber das Problem ist, dass ich nicht in der Tabelle anmelden kann, wo ich meine Werte registriert, obwohl ich bin erfolgreich in der Lage, sie zu registrieren. Hier ist es mein login.php Code. Die Fehlermeldung, die ich bekomme, ist Invalid Username or Password, obwohl sie in meiner Tabelle sind.Login in Android mit PHP und MySQL

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    require_once('dbConnect.php'); 
    $sql = "SELECT * FROM register WHERE username = '$username' AND password='$password'"; 
    $result = mysqli_query($con, $sql); 
    $check = mysqli_fetch_array($result); 
    if(isset($check)){ 
     echo'sucess'; 
    }else{ 
     echo'failure'; 
    } 
    mysqli_close($con); 
} 
?> 

Das ist mein Config.java Datei ist:

public class Config { 
    //URL to our login.php file 
    public static final String LOGIN_URL = "http://10.0.2.2/login.php"; 

    //Keys for email and password as defined in our $_POST['key'] in login.php 
    public static final String KEY_EMAIL = "username"; 
    public static final String KEY_PASSWORD = "password"; 

    //If server response is equal to this that means login is successful 
    public static final String LOGIN_SUCCESS = "success"; 

    //Keys for Sharedpreferences 
    //This would be the name of our shared preferences 
    public static final String SHARED_PREF_NAME = "myloginapp"; 

    //This would be used to store the email of current logged in user 
    public static final String EMAIL_SHARED_PREF = "username"; 

    //We will use this to store the boolean in sharedpreference to track user is loggedin or not 
    public static final String LOGGEDIN_SHARED_PREF = "loggedin"; 
} 

Und das ist meine Login.java Datei, die eine, die ich für die Erstellung von Log geschrieben:

public class Login extends AppCompatActivity implements View.OnClickListener { 
    private Button btnLogin; 
    private TextView txtRegister; 
    private EditText editUsername, editPassword; 
    private boolean loggedIn = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     //Initializing views 
     editUsername = (EditText) findViewById(R.id.editUsername); 
     editPassword = (EditText) findViewById(R.id.editPassword); 
     btnLogin = (Button) findViewById(R.id.btnLogin); 
     txtRegister = (TextView) findViewById(R.id.txtRegister); 

     //Adding click listener 
     btnLogin.setOnClickListener(this); 
     txtRegister.setOnClickListener(this); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     //In onresume fetching value from sharedpreference 
     SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME,Context.MODE_PRIVATE); 

     //Fetching the boolean value form sharedpreferences 
     loggedIn = sharedPreferences.getBoolean(Config.LOGGEDIN_SHARED_PREF, false); 

     //If we will get true 
     if(loggedIn){ 
      //We will start the Profile Activity 
      Intent intent = new Intent(Login.this, ProfileActivity.class); 
      startActivity(intent); 
     } 
    } 

    private void login(){ 
     //Getting values from edit texts 
     final String username = editUsername.getText().toString().trim(); 
     final String password = editPassword.getText().toString().trim(); 

     //Creating a string request 
     StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.LOGIN_URL, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       //If we are getting success from server 
       if(response.equalsIgnoreCase(Config.LOGIN_SUCCESS)){ 
        //Creating a shared preference 
        SharedPreferences sharedPreferences = Login.this.getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 

        //Creating editor to store values to shared preferences 
        SharedPreferences.Editor editor = sharedPreferences.edit(); 

        //Adding values to editor 
        editor.putBoolean(Config.LOGGEDIN_SHARED_PREF, true); 
        editor.putString(Config.EMAIL_SHARED_PREF,username); 

        //Saving values to editor 
        editor.commit(); 

        //Starting profile activity 
        Intent intent = new Intent(Login.this, ProfileActivity.class); 
        startActivity(intent); 
       }else{ 
        //If the server response is not success 
        //Displaying an error message on toast 
        Toast.makeText(Login.this, "Invalid username or password", Toast.LENGTH_LONG).show(); 
       } 
      } 
     }, 
     new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       //You can handle error here if you want 
      } 
     }){ 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String,String> params = new HashMap<>(); 
       //Adding parameters to request 
       params.put(Config.KEY_EMAIL,username); 
       params.put(Config.KEY_PASSWORD, password); 

       //returning parameter 
       return params; 
      } 
     }; 

     //Adding the string request to the queue 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.btnLogin: 
       login(); 
       break; 

      case R.id.txtRegister: 
       Intent register = new Intent(Login.this,Register.class); 
       startActivity(register); 
       break; 
     } 
    } 
} 

Hier ist der Link, habe ich als Referenz: https://www.simplifiedcoding.net/android-login-example-using-php-mysql-and-volley/

+0

Wie lautet die Antwort, die Sie vom Server erhalten? –

+0

Ich erhalte die Nachricht "Ungültiger Benutzername oder Passwort" in Toast. Die, die ich in login() in Login.java geschrieben habe – Rebecca

+0

Was soll ich dann schreiben? – Rebecca

Antwort

0

Sie buchstabierten "Erfolg" falsch im PHP-Code. Aus diesem Grund wird Ihre App niemals die Antwort auf Config.LOGIN_SUCCESS entsprechen, die korrekt geschrieben wurde.

+0

Nah..Its funktioniert nicht – Rebecca

+0

Ich habe diese Antwort gelöst, es war ein Leerzeichen in jedem Wert in MYSQL-Datenbank gespeichert, um zu vermeiden Dies setzt trim() vor der Methode toString() – Rebecca