PHP:缺少POST数据。.htaccess文件中可能存在的错误?
使用Android中的Volley库,我使用POST方法将数据发送到服务器PHP:缺少POST数据。.htaccess文件中可能存在的错误?,php,apache,.htaccess,http,post,Php,Apache,.htaccess,Http,Post,使用Android中的Volley库,我使用POST方法将数据发送到服务器 private void registerNewUser(final String name, final String email, final String password) { final String TAG_REGISTER = "New user registration"; String tag_string_req = "req_register"; final Progre
private void registerNewUser(final String name, final String email, final String password) {
final String TAG_REGISTER = "New user registration";
String tag_string_req = "req_register";
final ProgressDialog pDialog = new ProgressDialog(getActivity());
pDialog.setCancelable(true);
pDialog.setMessage("Registering..");
pDialog.show();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, ServerURL.URL_REGISTER, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG_REGISTER, "Register Response: " + response.toString());
pDialog.dismiss();
try {
JSONObject jObj = new JSONObject(response.toString());
boolean error = jObj.getBoolean("error");
if (!error) {
// User successfully stored in MySQL
// Now store the user in sqlite
String uid = jObj.getString("uid");
JSONObject user = jObj.getJSONObject("user");
String name = user.getString("name");
String email = user.getString("email");
String created_at = user
.getString("created_at");
// Inserting row in users table
db.addUserIntoSQLite(name, email, uid, created_at);
Toast.makeText(getActivity(), "User successfully registered. Try login now!", Toast.LENGTH_LONG).show();
// Launch login activity
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
} else {
// Error occurred in registration. Get the error
// message
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getActivity(), errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG_REGISTER, "Registration Error: " + error.getMessage());
Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_LONG).show();
pDialog.dismiss();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "register");
params.put("name", name);
params.put("email", email);
params.put("password", password);
return params;
}
};
ApplicationController.getInstance().addToRequestQueue(jsonObjectRequest, tag_string_req);
}
这些是我完全不知道的。。这部分是否有妨碍PHP中POST请求的错误?如果是,我应该如何修复它?您是否检查了您是否实际发送和接收了该数据?var_dump$_SERVER['REQUEST_METHOD'],$\u发布并查看收到的内容。@MarcB嘿,谢谢,但我如何实现该代码?实际上,到目前为止我只学过Android,这是第一次使用PHP。我正在使用名为000webhost.com的web托管服务,我以前没有学过它。@MarcB现在我知道该代码放在哪里了,现在我看到这个-{error:true,error\u msg:Operation由于缺少标记而失败!}string3 GET array0{}所以这是一个GET请求,这意味着无论收到什么帖子都会导致重定向。@MarcB-Hmm这很奇怪,因为我没有提到PHP或Android端的任何GET。
<?php
if (isset($_POST['tag']) && $_POST['tag'] != '') {
// get tag
$tag = $_POST['tag'];
// include db handler
require_once 'mysql/DB_Functions.php';
$db = new DB_Functions();
// response Array
$response = array("tag" => $tag, "error" => FALSE);
// check for tag type
if ($tag == 'register') {
// Request type is Register new user
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
// check if user is already existed
if ($db->isUserExisted($email)) {
// user is already existed - error response
$response["error"] = TRUE;
$response["error_msg"] = "User already exists";
echo json_encode($response);
} else {
// store user
$user = $db->storeUser($name, $email, $password);
if ($user) {
// user stored successfully
$response["error"] = FALSE;
$response["uid"] = $user["unique_id"];
$response["user"]["name"] = $user["name"];
$response["user"]["email"] = $user["email"];
$response["user"]["created_at"] = $user["created_at"];
$response["user"]["updated_at"] = $user["updated_at"];
echo json_encode($response);
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Error occured in Registartion";
echo json_encode($response);
}
}
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Unknow 'tag' value. It should be either 'login' or 'register'";
echo json_encode($response);
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required parameter 'tag' is missing!";
echo json_encode($response);
}
?>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php