【问题标题】:$_POST request in PHP how can i apply?PHP 中的 $_POST 请求我该如何申请?
【发布时间】:2015-04-28 11:14:56
【问题描述】:

我想知道如何在 PHP 中使用POST 请求。我使用$_REQUEST['text'] 从像http://localhost/data.php?text=ABCDEFGH 这样的url 获取数据,但是如果我传递的文本比ERROR : Request-URI Too Long 长。

if(isset($_REQUEST['text'])){
     $parsetext=$_REQUEST['text'];    //get data here data > ABCDEFGH
}else{
     echo "not valid";
}

请任何人告诉我如何使用POST 请求支持长文本。我知道$_REQUEST 用于请求GETPOST

【问题讨论】:

  • 如果数据的来源来自表单,那么只需将方法更改为发布
  • 是的,数据来自哪里?
  • @reformed 硬编码传递 ?text=haksgdhas 或从 ajax 请求发送
  • 如果 URL 中可见的数据意味着,您可以使用$_GET['text']...到目前为止我从未使用过$_REQUEST[] :)

标签: php post


【解决方案1】:

关于错误,您可以查看这些链接(我假设您已经看过这个):

How do I resolve a HTTP 414 “Request URI too long” error?

Request-URI Too Large

对于您的问题:I want to know how to use POST request in PHP.

  1. 创建一个表单。

(我假设此表单中的文本框将获取您要发布的长数据)。

<form method="POST" action="http://localhost/data.php">
  <input type="text" name="input_text" />
  <button type="submit">Submit</button>
</form>
  1. 使用表单上定义的方法从 from 输入接收数据。在这种情况下,方法是POST,接收提交数据的url/文件是http://localhost/data.php

    if (isset($_POST['input_text'])) {
        // Where input_text is the name of your textbox.
        $text = $_POST['input_text'];
        echo $text;
    }
    

错误:请求 URI 太长。

$_REQUEST,正如你所说,处理$_POST$_GET 方法是正确的。 关于您的问题,即使您使用 $_REQUEST 获取数据,它在后台使用 $_GET 方法来捕获您通过 url 传递的查询字符串。

$_GET method has limit on size and this is the main reason why you encounter that error。而$_POST 方法没有限制:Is there a maximum size for content of an HTTP POST?

结论:最好不要使用$_REQUEST,具体使用$_GET$_POST:D

【讨论】:

  • 我使用了 $_REQUEST 它需要 $_GET$_POST 。那么为什么会出现这些错误Request-URI Too Long
  • 我在答案中添加了 cmets。
【解决方案2】:

首先,阅读这个Question/Answer,这可能会为你弄清楚一些关于POST和GET之间的区别以及你应该为你的项目使用什么方法的东西。

然后,您应该忘记 $_REQUEST 并使用 $_GET 或 $_POST。如果您继续使用 $_REQUEST,这将防止您可能遇到的一些安全问题。更多信息请关注PHP Manual

接下来,如果您要传递大量数据,则绝对应该切换到 POST,而不是 GET。否则,您必须修改您的 apache 配置,如果您打算向公众发布代码,则不建议这样做。

-编辑开始-

如果一切都在同一台服务器上,您甚至可以在 AJAX 中使用 POST。

-编辑结束-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多