看不懂你的文字敘述...
不過看你的code
應該是想做一個登入介面吧
帳密驗證是後端的事(php)
app需要做的就是收到php驗證完後的結果
來觸發相對應的activity
所以你的問題是php那邊不會寫判斷
還是app收不到結果呢
不好意思文字描述有問題 是PHP不會寫判斷然後如何回傳到APP那裏
那你可能要上個你的php code 來改會比較快
還請您幫我看一下感謝
那個..可以貼文字嗎
那你這樣app拿不到的response嗎
你說在程式碼下註解嗎?
在GET的時候拿不到
幫你改好了
你有些 function 沒有照他的規範使用
我就照官方doc改一下
或許可能實務沒人這樣用
但作為練習應該ok
<?php
$con = mysqli_connect("localhost", "root", "", "myDB");
$respone = array("success" => false);
header("Content-type:application/json");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (!isset($_POST["user"]) || !isset($_POST["user"])) { // $_POST["user"] 和 $_POST["user"] 為必要資訊
$respone["msg"] = "missing params";
http_response_code(400);
echo json_encode($respone);
return false;
}
$user = $_POST["user"];
$pwd = $_POST["pwd"];
$sql = mysqli_prepare($con, "select user_id, password from user where user_id = ? and password = ?");
mysqli_stmt_bind_param($sql, "ss", $user, $pwd);
mysqli_stmt_execute($sql);
mysqli_stmt_store_result($sql);
mysqli_stmt_bind_result($sql, $user, $pwd);
http_response_code(401);
if (mysqli_stmt_fetch($sql)) {
$respone["success"] = true;
http_response_code(200);
// $respone["user_id"] = $user;
// $respone["password"] = $pwd;
}
echo json_encode($respone);
?>
情況1
帳號或密碼未送到後端時
php回傳的結果
// status code 400
{
"success": false,
"msg": "missing params"
}
情況2
帳號或密碼都有送到後端, 但是帳號或密碼錯誤
php回傳的結果
// status code 401
{
"success": false
}
情況3
帳號或密碼都有送到後端, 且帳號密碼皆正確
php回傳的結果
// status code 200
{
"success": true
}
app那在針對這些情況去觸發相對應的activity就好
然後密碼 通常沒人存明碼在 database 了
通常會加密 salt後才存入