2016-07-22 1 views
0

私はthis tutorialを使用して、単純なユーザログインアクティビティを実装しています。私はPHPに新しいですし、私は間違って何をしているのか分かりません。チュートリアルでは、彼は自分のクエリのための "ロール"属性を取得する私は文字列を取得< HTML>私のコードが結果を取得している場合はそれを見てしようとしています。 ここに私のLoginActivityがあります。ここでandroidからデータベースにアクセスするためにphpを使用してクエリ結果の代わりに "<HTML>"を取得する

public class LoginActivity extends AppCompatActivity { 



    BufferedReader in; 
    private int byGetOrPost = 0; 
    int success = 0; 
    String id1 = ""; 
    String password1 = ""; 
    private static final String TAG_SUCCESS = "success"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

//  Defining onClickListener for Login Button 
     Button loginBtn = (Button) findViewById(R.id.login_btn); 
     loginBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
//    Check credentials 
       EditText phone = (EditText) findViewById(R.id.phone_txt); 
       EditText pwd = (EditText) findViewById(R.id.password_txt); 
       id1 = phone.getText().toString(); 
       password1 = pwd.getText().toString(); 
       new SigninActivity().execute(id1, password1); 
      } 
     }); 
    } 

    public class SigninActivity extends AsyncTask<String, Void, String> { 

     @Override 
     protected String doInBackground(String... arg0) { 
      if(byGetOrPost == 0){ //means by Get Method 

       try{ 
        String id = (String)arg0[0]; 
        String password = (String)arg0[1]; 
        String link = "#######/android_connect/check_user_login.php?id="+id+"&password="+password; 

        URL url = new URL(link); 
        HttpClient client = new DefaultHttpClient(); 
        HttpGet request = new HttpGet(); 
        request.setURI(new URI(link)); 
        HttpResponse response = client.execute(request); 
        BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

        StringBuffer sb = new StringBuffer(""); 
        String line=""; 

        while ((line = in.readLine()) != null) { 
         sb.append(line); 
         break; 
        } 
        in.close(); 
        return sb.toString(); 
       } 

       catch(Exception e){ 
        return new String("Exception: " + e.getMessage()); 
       } 
      } 

     } 

     @Override 
     protected void onPostExecute(String result){ 
      TextView reg=(TextView) findViewById(R.id.register_txt); 
      reg.setText(result); 
     } 
    } 
} 

は関係なく、私が入力した資格情報、 "REG" のTextViewは常にこのテキストを示しているものの私のPHPファイルのcheck_user_login.php

<?php 
$con=mysqli_connect("###.###.###.##:####","####","######","heycab"); 

if (mysqli_connect_errno($con)) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$id= $_POST['id']; 
$password = $_POST['password']; 
$result = mysqli_query($con,"SELECT Role FROM tb_login where 
id=$id and Password='$password'"); 
$row = mysqli_fetch_array($result); 
$data = $row[0]; 

if($data){ 
echo $data; 
} 
mysqli_close($con); 
?> 

しかし、最終的に、です。 "< HTML" "

+0

アクティビティで例外が発生しますか?結果をログに記録しようとしましたか? –

+0

私のコードが例外を返して返す場合、私の "reg"テキストビューに "Exception:..."と表示されるはずです。そして、それがあなたが意味するものなら、私のアプリはクラッシュせず、強制停止しません。角括弧付きの文字列 "HTML"を表示するだけです。 –

+2

アンドロイドを残しておきます。ブラウザを使用してPHPスクリプトをデバッグします。 Webサーバのログを見るか、エラーを有効にしてPHPスクリプトで何が間違っていたのかを確認してください。 – e4c5

答えて

0

ファイルが置かれたサーバーにの設定がfalseに設定されているため、ブラウザでphpを開いたときにエラーが表示されませんでした。代わりにXampを使用しました。ファイルをディレクトリ 'xamp/htdocs /'の中に置き、XampコントロールパネルからApacheとMySQLを有効にした後、ブラウザのurl "localhost/htdocs/file_name.php"を入力しました。今は私が以前に見ることができなかったエラーを私に示しました。だから他の誰かが同じ問題を抱えているなら、彼らはこの方法を使ってPHPファイルのエラーを特定することができます。ああ、私のデータベースのユーザーとパスワードが間違っていました。誰もが不思議に思っていた。

関連する問題