1

ログインページを機能させることができなかったようです。明らかに間違っていることがわかっているのに、ユーザー名/パスワードが間違っていると表示され続けました。そこで、log.v のデバッグとポップを開始したところ、興味深いことがわかりました。「//<--- THIS LINE!」という行を探します。

class LogMeIn extends AsyncTask<String, Void, String> {
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("http://www.fakesite.com/login.php");

    protected String doInBackground(String... urls) {

        try {
            username = un.getText().toString();
            password = pw.getText().toString();
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                    2);
            nameValuePairs
                    .add(new BasicNameValuePair("username", username));
            nameValuePairs
                    .add(new BasicNameValuePair("password", password));
            post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = client.execute(post);
            String res = inputStream(response.getEntity().getContent())
                    .toString();
            Log.v("RESPONSE", res); // <--- THIS LINE!

            // if username and password are valid, launch main activity
            if (res.toString() == "1") {
                Intent logIn = new Intent(getApplicationContext(), Main.class);
                startActivity(logIn);                   
            } 
            // send the user a message saying the login failed
            else {
                runOnUiThread(new Runnable() {
                    public void run() {                         
                        pw.setText("");
                        fail.setText(R.string.fail);
                    }
                });
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

    protected void onPostExecute(String file_url) {

    }
}

private StringBuilder inputStream(InputStream input) {
    String line = "";
    StringBuilder total = new StringBuilder();
    BufferedReader read = new BufferedReader(new InputStreamReader(input));

    try {
        while ((line = read.readLine()) != null) {
            total.append(line);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return total;
}

今、私は「true」または「1」のような応答を期待していました。それに基づいて、ユーザー名/パスワードが正しいことがわかり、メインのアクティビティを開始して、人生は続きます。しかし、私が戻ってきたのはこれでした

05-18 15:41:27.620: V/RESPONSE(27641):  <!--<script>window.location.href="";</script>-->       <!-- <meta http-equiv="refresh" content="0;url=">                --> 

さらに、URL の末尾にある /login.php を削除して " http://www.whatever.com " とすると、同様の html の壁がずっと長くなります。

言うまでもなく、私はこれを間違っており、ユーザー名/パスワードが正しいかどうかに関係なく、ログインに失敗します。どこで私は間違えましたか?私はそれを理解できないようです。

4

0 に答える 0