【问题标题】:How to extract POST parameters in php如何在php中提取POST参数
【发布时间】:2014-11-22 10:45:55
【问题描述】:

从 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']) 但这两个都给了我空字符串。

【问题讨论】:

  • 您尝试过使用print_r($_POST) 查看发送的内容吗?
  • @MarkOrmesher 这会做什么?
  • 它将显示存储在 $_POST 中的所有内容 - 如果它是空的,那么您就知道问题出在 Android 应用程序中。
  • @MarkOrmesher 是的,它什么也没显示。其他地方出了点问题。我会删除这个问题。或者您可以将此评论作为答案发布,我会接受。
  • 已更新。将这两个代码示例留给未来的访问者可能很好,但您决定是否接受任何一个答案:)

标签: php android http-post post-parameter


【解决方案1】:

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

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

【讨论】:

  • OP 已经说过他们尝试过使用$_POST['pa'],但没有成功。
  • @MarkOrmesher 我已经修改了我的答案。
【解决方案2】:

您可以使用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);

不过,我在这里是凭记忆工作的 - 您需要插入几个 try/catch。

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

【讨论】:

    【解决方案3】:

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

    <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

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 2021-01-12
      • 2015-02-06
      • 1970-01-01
      相关资源
      最近更新 更多