简单问题:即使您不知道所有字段,是否可以将所有数据发布到页面上?
例如,我想编写一个简单的脚本来收集任何POSTed数据并通过电子邮件发送它。我可以预见,随着时间的推移,表格中的字段可能会发生很大的变化,所以从长远来看,为了节省一些时间,我想知道我是否可以写一些自动收集的内容?
有可能吗?
答案 0 :(得分:85)
不确定。只需浏览$_POST
数组:
foreach ($_POST as $key => $value) {
echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>";
}
答案 1 :(得分:32)
没有人提到原始发布数据,但很高兴知道,如果发布的数据没有密钥,只有值,请使用Raw Post Data:
$postdata = file_get_contents("php://input");
PHP Man:
php:// input是一个只读流,允许您读取原始数据 来自请求机构。在POST请求的情况下,它是可取的 使用php://输入而不是$ HTTP_RAW_POST_DATA,因为它没有 依赖于特殊的php.ini指令。而且,对于那些情况 默认情况下不会填充$ HTTP_RAW_POST_DATA,它是潜在的 激活的内存密集程度较低 always_populate_raw_post_data。 php://输入不可用 ENCTYPE = “多部分/格式数据”。
答案 2 :(得分:4)
所有发布的数据都将在$ _POST超全球中。
答案 3 :(得分:4)
答案 4 :(得分:2)
您可以使用array_keys()检索$ _POST数组的所有键,然后使用这些键的值构建电子邮件。
var_dump($_POST)也会为您转储有关$ _POST中所有信息的信息。
答案 5 :(得分:2)
只要您不需要任何特殊格式:是。
foreach ($_POST as $key => $value)
$body .= $key . ' -> ' . $value . '<br>';
显然,需要更多的格式化,但这是“简单”的方式。除非我误解了这个问题。
你也可以这样做(如果你喜欢这种格式,那肯定更容易):
$body = print_r($_POST, true);
答案 6 :(得分:1)
要添加到其他人,var_export也可能很方便:
$email_text = var_export($_POST, true);
答案 7 :(得分:0)
您可以使用$_REQUEST
以及$_POST
来覆盖Post,Get和Cookie数据等所有内容。