ログインコードが正常に動作していますが、無効なログインの詳細が表示された場合、ユーザーにトーストするコードのスニペットを含める必要があります。JSONがアンドロイドの無効なログインの詳細を通知します
無効なログインの詳細を提供するかどうかをユーザーに知らせるために、下のコードを変更するのを手伝ってください(インターネット上の他のチュートリアルから見つけてください)。
protected void onPostExecute(String s) {
String err=null;
try {
JSONObject root = new JSONObject(s);
JSONObject user_data = root.getJSONObject("user_data");
NAME = user_data.getString("name");
PASSWORD = user_data.getString("password");
EMAIL = user_data.getString("email");
if(NAME == ""){
Toast.makeText(getApplicationContext(),
"Invlaid Login Details", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
err = "Exception: "+e.getMessage();
}
Intent i = new Intent(ctx, Home.class);
i.putExtra("name", NAME);
i.putExtra("password", PASSWORD);
i.putExtra("email", EMAIL);
i.putExtra("err", err);
startActivity(i);
}
、ここでは私のPHPファイルは、ログインのためである
require 'connection.php';
try{
$username = filter_input(INPUT_POST, 'name');
$pssword = filter_input(INPUT_POST, 'password');
if($username == "")
{
$results = "Invalid Entry";
echo json_encode(array("user_data"=>$results));
}
else
{
$stmt = $db->prepare('SELECT * '
. 'FROM users1 '
. 'WHERE name = :uname AND password = :password ');
$stmt->bindParam(':uname', $username);
$stmt->bindParam(':password', $pssword);
$stmt->execute();
$results = $stmt->fetch(PDO::FETCH_ASSOC);
if($results > 0){
$response = array();
echo json_encode(array("user_data"=>$results));
} else{
$results = "No Record Found";
$results["success"] = 0;
$results["message"] = "No Record Found";
die(json_encode($results));
}
}
}catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$stmt = NULL;
$results = NULL;
exit();
//}
おかげしかし、次のことができますJSONのrepsonseは、Webサービスから返されたので、この理由がある
は対象ではない文字列であるので、このコードを無視しますこれを少し解説する..?私はアンドロイドプログラミングでは新しく、これが動作するために必要なコードを私に与えることができれば感謝します。これをコードに変更し、これが動作するかどうかはわかりません。if(NAME.equals(0)) – fernan
Javaの2つの文字列を比較すると、javascriptやphpと同じではありません。 Stringクラスでequalsメソッドを使用する必要があります。それを使用しないと、値ではなくアドレス値と比較されます。 ""と名前は2つの別個のオブジェクトなので、2つのアドレスを持っています – kevingiroux
あなたはその逆を行うべきです。 If( ""は(Name)と等しくなります) – kevingiroux