2017-08-24 19 views
-1

ログインしようとすると、「無効なメールまたはパスワード」というメッセージが常に表示されます。私の欠点はどこですか?この問題を修正するための提案はありますか?または、これに関する情報を得るための情報源がありますか?ボタンをクリックすると「無効」メッセージが表示されます

mainactivity.javaです。ここではログインボタンについて説明します。ボタンをクリックすると、情報を取得するデータベースがチェックされず、別のページに切り替わりません。

private View.OnClickListener btnGirisListener = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     email = etmail.getText().toString(); 
     password = etpassword.getText().toString(); 
     login(email, password); 
    } 
}; 
    private void login(final String email, String password){ 
     class LoginAsync extends AsyncTask<String,Void,String>{ 
      private Dialog loadingDialog; 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loadingDialog=ProgressDialog.show(MainActivity.this,"Please wait", "Loading.."); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       String mail = params[0]; 
       String pass = params[1]; 

       InputStream is = null; 
       List<NameValuePair>nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("E-mail",mail)); 
       nameValuePairs.add(new BasicNameValuePair("Password", pass)); 
       String result = null; 

       try{ 
        HttpClient httpClient = new DefaultHttpClient(); 
        HttpPost httpPost = new HttpPost("http://******"); 
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

        HttpResponse response = httpClient.execute(httpPost); 

        HttpEntity entity = response.getEntity(); 

        is = entity.getContent(); 

        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8); 
        StringBuilder sb = new StringBuilder(); 

        String line = null; 
        while ((line = reader.readLine()) != null) 
        { 
         sb.append(line + "\n"); 
        } 
        result = sb.toString(); 
       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return result; 
      } 

      @Override 
      protected void onPostExecute(String result) { 
       String s = result.trim(); 
       loadingDialog.dismiss(); 
       if(s.equalsIgnoreCase("success")){ 
        Intent intent = new Intent(MainActivity.this, Giris.class); 
        intent.putExtra(E_MAIL, email); 
        finish(); 
        startActivity(intent); 
       }else{ 
        Toast.makeText(getApplicationContext(),"Invalid E-mail or Password.",Toast.LENGTH_SHORT).show(); 
       } 
      } 
     } 
     LoginAsync la = new LoginAsync(); 
     la.execute(email,password); 
    } 

}; 

私はPHPファイルを変更しようとしましたが、解決策はありませんでした。 およびuyegiris.phpファイル。

<?php 
define('DB_USER', "*******"); //Blanks are full. 
define('DB_PASSWORD', "*****"); 
define('DB_DATABASE', "*****"); 
define('DB_SERVER', "*****"); 

$con = mysqli_connect(DB_USER,DB_PASSWORD,DB_DATABASE,DB_PASSWORD); 

$Email = $_POST['Email']; 
$Sifre = $_POST['Sifre']; 

$sql = "select * from uyeler where Email='$Email' and Sifre='$Sifre'"; 

$res = mysqli_query($con,$sql); 
$check = mysqli_fetch_array($res); 

if(isset($check)){ 
    echo 'success'; 
}else{ 
    echo 'failure'; 
} 
mysqli_close($con); 

?> 
+0

を私はあなたがPHPの端部Aにおけるモバイル最後の「メール」と「電子メール」を設定するようのparamsでいくつかの誤植があると思いますモバイル側では「パスワード」の代わりに「Sifre」を使用します。 –

+0

phpのパスワードはSifreで、アンドロイドは 'Password'です –

+0

ログインメソッド内でAsyncTaskクラス全体を定義しているのはなぜですか?ログインメソッドの外でAsyncTaskを定義し、ログインメソッドで単に を呼び出してください。LoginAsync la = new LoginAsync(); la.execute(email、password); – Danger

答えて

2

モバイル(送信)と以下のように修正されるPHPの(受信)のパラメータキーのいくつかの誤植を行っているように思えます:

モバイル(送信):

nameValuePairs.add(new BasicNameValuePair("Email",mail)); 
nameValuePairs.add(new BasicNameValuePair("Password", pass)); 

ペソ(受信):

$Email = $_POST['Email']; 
$Sifre = $_POST['Password']; 
+0

私はあなたが言ったことをしました。しかし、それはまだ動作しません。私はまだ "無効な"メッセージを取得しています。 –

+0

@ CanDirik、値で選択したクエリを印刷し、そのクエリをdbで実行して、動作するかどうかを確認してください。 –

+0

それは動作しているように見えます。 –

関連する問題