2016-05-11 3 views
0

私はMySQLで登録した後にログインモジュールを作成しようとしていましたが、私が直面している問題は、自分の値を登録したテーブルにログインすることができないということです。それらを登録することに成功しました。ここは私のlogin.phpコードです。彼らが私のテーブルにあるが、私が得ているエラーメッセージはInvalid Username or Passwordです。PHPとMySQLを使用したAndroidでのログイン

<?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); 
} 
?> 

これは私のConfig.javaファイルです:

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"; 
} 

そして、これが私のLogin.javaファイル、私はログインを作成するために書いたものです:これは私が使用したリンク、ある

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; 
     } 
    } 
} 

参考:https://www.simplifiedcoding.net/android-login-example-using-php-mysql-and-volley/

+0

あなたはサーバーからどのような応答を得ていますか? –

+0

トーストで「無効なユーザー名またはパスワード」というメッセージが表示されます。私がLogin.javaのlogin()で書いたもの – Rebecca

+0

次に何を書いてください。 – Rebecca

答えて

0

あなたは「成功」と綴りました。 PHPコードで間違っています。このため、あなたのアプリは、正確に綴られたConfig.LOGIN_SUCCESSに対する応答と決して一致しません。

+0

Nah..If not working – Rebecca

+0

私はこの回答を解決しました。私がMYSQLデータベースに保存したすべての値にスペースがあったので、これを回避しました。これはtoString()メソッドの前にtrim()を置く – Rebecca

関連する問題