【发布时间】:2020-04-26 21:05:01
【问题描述】:
我制作了一个带有 PHP 后端的 android 应用程序,它可以在 localhost 上正常工作。 但是,当我将它上传到服务器上时,它会返回一个空字符串,而不是例如“ok”。我已经把所有的权限都交给了777,但它不起作用。
其中一个 PHP 脚本:
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$username = $_POST['username'];
$password = $_POST['password'];
require_once('dbConnect.php');
$sql = "SELECT * FROM coachtbl WHERE kodemelli =
'$username'
AND password='$password'";
$r = @mysqli_query($con,$sql);
$num_rows = mysqli_num_rows($r);
if($num_rows>0){
echo ("ok");}
else{
echo (mysqli_error($con));
}
@mysqli_close($con);
}
?>
这是我的安卓代码:
StringRequest request = new StringRequest(Request.Method.POST, Config.login_Api, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
loading.dismiss();
Toast.makeText(LoginActivity.this, s, Toast.LENGTH_SHORT).show();
if (s.trim().equals("ok")) {
//Toast.makeText(LoginActivity.this, "success", Toast.LENGTH_SHORT).show();
startActivity(new Intent(LoginActivity.this , MainPage.class));
kodemelli=kode.getText().toString().trim();
} else {
Toast.makeText(LoginActivity.this, "username or password is wrong", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(LoginActivity.this, volleyError.toString(), Toast.LENGTH_SHORT).show();
loading.dismiss();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("username", kode.getText().toString().trim());
params.put("password", pass.getText().toString().trim());
return params;
}
};
RequestQueue requestQueue =
Volley.newRequestQueue(LoginActivity.this);
requestQueue.add(request);
感谢您的帮助
【问题讨论】:
-
您确定您正在从您的 android 手机发出 POST 请求吗?你能过去android代码吗?服务器上的文件可以通过互联网访问吗?
-
是的,我很确定。我也发布了android代码
-
您是否使用 Postman 向您的 Web 服务器发帖?结果正确吗?
-
邮递员是什么意思??
-
向您的页面发出 POST 请求,就像使用本网站一样。 reqbin.com