如何在php中提取POST参数

时间:2014-09-27 15:30:39

标签: php android http-post post-parameter

从Android应用程序,我正在调用我的PHP脚本。

HttpPost httppost = new HttpPost("http://www.smth.net/some.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("pa", "555"));
nameValuePairs.add(new BasicNameValuePair("pb", "550"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
}

如何在我的php脚本中获取“pa”和“pb”的值。

我做了$ _POST ['pa']和urldecode($ _ POST ['pa']),但这两个都给了我空字符串。

3 个答案:

答案 0 :(得分:1)

您想要使用$_POST环境变量。因此,在您的代码中,您可以使用$_POST["pa"]$_POST["pb"]

如果这不起作用,请尝试使用var_dump检查$_POSTvar_dump($_POST))的内容。如果它是空的,那么你的android代码是个问题。

答案 1 :(得分:1)

您可以使用print_r($_POST)调试正在发送的内容。

如果有帮助,这就是我使用POST从Android发送信息的方式:

JSONObject requestBody = new JSONObject();
requestBody.put("pa", "550");
requestBody.put("pb", "550");

HttpPost requestBase = new HttpPost("url");
StringEntity stringEntity = new StringEntity(requestBody.toString());
stringEntity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
requestBase.setEntity(stringEntity);

HttpResponse response = httpclient.execute(requestBase);

我在这里从事记忆工作 - 你需要插入一些尝试/捕获。

使用JSONObject可能是不必要的,但我发现它给了我更好的灵活性和可靠性。

答案 2 :(得分:0)

您可以使用$_POST函数检查extract()数组的内容,该函数读取所有键值对并创建以键为名称、以值为变量内容的变量。请参见下面的示例:

<form method="post" aciton="extract.php">
  <input type="text" name="foo" />
  <input type="submit" />
</form>
<pre>
<?php
  function dump_extracted_post() {
    extract($_POST);
    var_dump(get_defined_vars());
  }
  dump_extracted_post();
?>
</pre>

How to extract $_GET / $_POST parameters in PHP中阅读更多