1

(Eclipseで)Android用のログインシステムをプログラムしようとしていますが、外部のMySQL-DBからデータを取得する必要があります。

ソース私はそれのためにコードを取りました:MySQLデータベースへの接続

私がデータを取得しようとしているウェブサイトはここにあります(私はいくつかの安全上の問題があることを知っています、ブラブラ、これは今のところ私の問題ではありません^^)

私が抱えている問題は、アプリケーションを実行しようとすると、「パスワードが見つかりません」というエラーが発生することです。このエラーは、次のコード内でキャッチされます。

ArrayList<String> passwort = new ArrayList<String>();
ArrayList<String> benutzer = new ArrayList<String>();
try{
  jArray = new JSONArray(result);
  JSONObject json_data=null;
  for(int i=0;i<jArray.length();i++){
         json_data = jArray.getJSONObject(i);
         passwort.add(json_data.getString("pw"));
         benutzer.add(json_data.getString("benutzer"));

     }
  Intent intent = new Intent(this, MainActivity.class);
  intent.putExtra("arrayBenutzerExtra", benutzer);
  intent.putExtra("arrayPasswortExtra", passwort);
  startActivity(intent);

    }
    catch(JSONException e1){
      Toast.makeText(getBaseContext(), "No Password found" ,Toast.LENGTH_LONG).show();
    } catch (ParseException e1) {
        e1.printStackTrace();
}

また、ウェブサイトに接続するコードはこちらですが、エラーメッセージは出ませんが、問題ないようです!

try{
 HttpClient httpclient = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("http://winklermarkus.at/appconnection.php");
 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 HttpResponse response = httpclient.execute(httppost);
 HttpEntity entity = response.getEntity();
 is = entity.getContent();
   }catch(Exception e){
     Log.e("log_tag", "Error in http connection"+e.toString());
   }

.phpファイルのコードは次のとおりです。

$sql_pw = "SELECT ". "Passwort ". "FROM ". "benutzerdaten ";
    $result_pw = mysql_query ($sql_pw); 
    $data_pw = mysql_fetch_array ($result_pw);
    $pw = $data_pw["Passwort"];

    $sql_benutzer = "SELECT ". "Email ". "FROM ". "benutzerdaten ";
    $result_benutzer = mysql_query ($sql_benutzer); 
    $data_benutzer = mysql_fetch_array ($result_benutzer);
    $benutzer = $data_benutzer["Email"];

print(json_encode($pw));
print(json_encode($benutzer));

mysql_close();
?>

Perceptionが述べたように、有効なJSON出力が得られません。これは、2つの文字列を同時に送信しようとしている私と関係がある可能性がありますか?

4

1 に答える 1

2

あなたの PHP コードは、あなたが思っていることをしていません。重大なセキュリティ ホールを作成したため、修正はお勧めできません。

代替戦略として、すべてのパスワードとすべての電子メールをクライアントに送信する代わりに (関連付けられていない方法で)、クライアントにハッシュ化されたパスワードと電子メールを (SSL 経由で) サービスに送信します。次に、データベースに電子メール/パスの組み合わせがあるかどうかをサービス側でクエリします。ログイン成功を返す場合は、ログイン失敗を返します。

于 2012-12-10T14:59:27.150 に答える