【问题标题】:PHP variable length of POST request?POST请求的PHP可变长度?
【发布时间】:2014-09-17 08:46:11
【问题描述】:

我正在尝试将 html 表单提交到 php 服务器。但是,此表单可以具有可变长度和结构(当用户与页面交互时,我通过动态 javascript 添加输入节点,具体取决于他的操作)。如果我不知道表单的结构,如何从 PHP 中获取表单中包含的值(使用 $_POST['xxx'])?

【问题讨论】:

  • 首先,如果您不知道接收数据的结构并接受任何数据,那么您将来可能会遇到一些严重的安全问题。最好将一些动态字段作为数组传递(因此可以与静态值分离)以及将它们限制为某些类型(因此可以验证)。
  • 关于该主题的任何建议阅读?
  • @Xenos 将我的想法放在下面的 cmets 中。另请阅读手册上的filter_inputphp.net/manual/en/function.filter-input-array.php

标签: php html post


【解决方案1】:

要遍历每个 POST 值,请使用:

foreach($_POST as $key => $value) {
  echo "POST parameter $key has $value";
}

【讨论】:

  • 在 HTML/javascript 中使用 <input ... name="object[tree][N]"/> 而不是普通的 name="object-tree-0" 应该会使 $_POST 结构更清晰,因为 PHP 将保留类似数组的 $_POST['tree'][N]
  • bam,就这样。谢谢:)
【解决方案2】:

只是一个有趣(但有效)的答案,这个问题的现有答案就足够了。

如果我不知道表单的结构?

那你就可以简单回顾一下

print_r($_POST);

您将了解 POSTed 的结构

【讨论】:

    【解决方案3】:

    要查找 POST OR GET OR SESSION 值的结构,您可以使用打印

    echo "<pre>"; print_r($_POST); print_r($_REQUEST); print_r($_SESSION);
    

    您可以轻松找到 POST/REQUEST/SESSION.. 等的确切打印/结构

    【讨论】:

      【解决方案4】:
      echo '<pre>';
      print_r($_POST);
      echo '</pre>';
      

      简单干净。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 2016-12-17
        相关资源
        最近更新 更多