java Android如何检查php消息以验证登录
我想了解如何使用php消息响应验证登录,以下是我的登录php:
<?php
include 'connectdb.php';
$data = json_decode(file_get_contents('php://input'), true);
$kodeDosen =$data["kodeDosen"];
$password = $data["password"];
$message = array("message"=>"Data found");
$failure = array("mesage"=>"Data not found");
if ($stmt = mysqli_prepare($conn, "SELECT kodeDosen, namaDosen, email, telepon FROM tbl_dosen WHERE kodeDosen =? and password = ?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "ss", $kodeDosen,$password);
/* execute query */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) > 0) {
echo json_encode($message);
}else {
echo json_encode($failure);
}
}
?>
下面是我登录java的练习:
public class loginDosen extends AppCompatActivity {
EditText txKodeDosen,txPassword;
String KodeDosen,password;
RequestQueue requestQueue;
String loginURL ="http://192.168.43.217/test/DosenPublikasi/registerDosen.php";
StringRequest request;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_dosen);
txKodeDosen = (EditText)findViewById(R.id.txKodeDosen);
txPassword = (EditText)findViewById(R.id.txPassword);
requestQueue = Volley.newRequestQueue(loginDosen.this);
}
public void Login(View view) {
if (txKodeDosen.getText().toString().equals("")) {
Toast.makeText(this, "Kode Dosen Field is empty", Toast.LENGTH_SHORT).show();
} else if (txKodeDosen.getText().toString().charAt(0) != 'D') {
Toast.makeText(this, "Must have D in the start", Toast.LENGTH_SHORT).show();
} else if (txKodeDosen.length() != 5) {
Toast.makeText(this, "Must be 5 characters long", Toast.LENGTH_SHORT).show();
} else if (txPassword.getText().toString().equals("")) {
Toast.makeText(this, "Password Field is empty", Toast.LENGTH_SHORT).show();
} else {
JSONObject Login = new JSONObject();
try {
Login.put("kodeDosen", txKodeDosen.getText().toString());
Login.put("password", txPassword.getText().toString());
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest jsonobjectrequest = new JsonObjectRequest(Request.Method.POST, loginURL, Login,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
Toast.makeText(loginDosen.this, response.toString(), Toast.LENGTH_SHORT).show();
SharedPreferences DataDosen = getSharedPreferences("Dosen", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = DataDosen.edit();
editor.putString("kodeDosen", txKodeDosen.getText().toString());
editor.putString("password", txPassword.getText().toString());
editor.commit();
Intent intent = new Intent(loginDosen.this, homepageDosen.class);
startActivity(intent);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(loginDosen.this, error.toString(), Toast.LENGTH_LONG).show();
}
});
requestQueue.add(jsonobjectrequest);
}
}
从我问的另一个问题来看,他们说我仍然使用了php的响应,并将其放在祝酒词上,但没有对其做任何处理。我想找到一种方法来使用php响应来验证我的登录提示,因为当我尝试使用其他用户给我的代码时,它导致了一个未经处理的表达式错误
# 1 楼答案
有很多方法可以解决这个问题。最好的建议方法是设置响应头。例如,在成功登录的情况下,如果登录失败,您可以将响应代码设置为200或401
您可以这样设置头(就在
echo
之前):然后在您的客户端,即Android,您可以检查响应代码,并根据响应代码计划您的操作