我试图在我的应用程序中添加一个删除帐户选项,但是当我尝试删除该帐户时,我没有从 Web 服务器获得响应。相反,我收到错误:org.json.JSONException: End of input at character 0 of我试图将请求方法更改为 DELETE 但是我不太熟悉 android 和数据库所以我不确定这是否可行。我不确定问题出在 php 还是 java 代码上,当我在 android studio 中运行调试器时,字符串响应返回:response: ""PHP:<?phpif($_SERVER['REQUEST_METHOD']=='POST'){$id = $_POST['id'];require 'conn.php'; $sql = "DELETE * FROM Patients WHERE patientID='$id'";if(mysqli_query($conn, $sql)){ $result['success'] = "1"; $result['message'] = "success"; echo json_encode($result); mysqli_close($conn);} else { $result["success"] = "0"; $result["message"] = "Error!"; echo json_encode($result); mysqli_close($conn);}} ?>我希望吐司弹出并说帐户已删除,但我却收到顶部的错误消息。ps 这只是一个原型,所以我目前并不担心安全问题。
1 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
无论问题是什么,我都会猜测并说if($_SERVER['REQUEST_METHOD']=='POST')是您问题的根源。
您的请求可能会被错误地发送到服务器,并且method不会被识别为POST可以解释""响应的原因,因为您没有提供在条件失败时应该发生的情况的替代方案。
发回一个错误的请求响应 ( 400),您将能够在您的 Java 代码中解决这个问题……PHP 很好。
if($_SERVER['REQUEST_METHOD']=='POST') { /* ... */ }
else {
http_response_code(400);
// exit('Bad request method.');
// or for a json response:
echo json_encode([
'success' => "0",
'message' => "Bad Request Method used."
]);
}
另外,我不得不说......安全应该始终是一个问题......只需要多几行代码就可以过滤用户请求,并通过准备好的语句使您的查询更加安全。这更多是习惯问题;有一天,您可能会在这里或那里忘记查询。
添加回答
举报
0/150
提交
取消