无法在php中读取post方法中的数据
成功付款后,页面将数据发布到我的服务器页面。在那里,我只能通过计算机读取数据无法在php中读取post方法中的数据,php,Php,成功付款后,页面将数据发布到我的服务器页面。在那里,我只能通过计算机读取数据 foreach($_POST as $key => $value) { file_put_contents($filename, "$key: $value\n", FILE_APPEND); } 此php代码并写入文本文件 但不要通过正常post变量获取任何数据 例如,通过post数据发送的状态键,如果我通过$\u post['status']调用,我不会通过它获得任何值 所以,
foreach($_POST as $key => $value)
{
file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}
此php代码并写入文本文件
但不要通过正常post变量获取任何数据
例如,通过post数据发送的状态键,如果我通过$\u post['status']调用,我不会通过它获得任何值
所以,这里发生了什么,我没有主意了。
所以请在这里指导我获取post数据
文档定义post方法中的数据发送和应用程序/x-www-form-urlencoded中的加密类型
我的php文件代码,其中post数据重定向到
<?php
session_start();
echo "post Data:"; print_r($_POST); //Nothing Show
$filename = "webhook_data2.txt";
foreach($_POST as $key => $value)
{
file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}
file_put_contents($filename, "----------\n", FILE_APPEND);
?>
检查邮件是否已发送
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = '';
foreach($_POST as $key => $value) {
$data .= "$key: $value" . PHP_EOL;
}
//write data
file_put_contents($filename, $data);
} else {
die('POST REQUEST IS NOT SEND');
}
php://input
具有从流读取的函数,例如
file_get_contents(`php://input`);
要阅读原始文章并保存它,您可以使用下面的代码
file_put_contents($filename, file_get_contents(`php://input`));
当您的请求是原始格式(例如JSON/XML)时,它不会自动映射到$\u POST。您需要自己解码输入。例如,如果是JSON,则使用JSON\u解码;如果是XML,则可以使用DOM或simplexml。从手册:
$\u POST
在请求中使用application/x-www-form-urlencoded或multipart/form数据作为HTTP内容类型时,通过HTTP POST方法传递到当前脚本的变量的关联数组
事实上,有时由于各种原因,$\u POST是空的。当这种情况发生在我身上时,阅读
php://input
像$postdata=file\u get\u contents(“php://input");代码>
$postdata现在是json字符串,您可以将其转换为如下数组:
$arr = json_decode($postdata, true);
那么你应该能够做到:
foreach($arr as$key=>$value)
{
文件内容($filename,$key:$value\n),文件附加);
}
您的HTML表单在哪里?提供以下信息:var\u dump($\u POST)
或print\r($\u POST)
并查看是否设置了任何内容。是否确定“status”是正确的键名?已尝试var\u dump($\u POST)或print\r($\u POST),但在it@simon我只是打个比方。我尝试过写入文本文件的键,但没有得到任何数据我尝试过这些东西只要看看:$post\u data=file\u get\u contents('php://input'); 打印($post_数据);-----------里面什么都没有$rawPostBody=file\u get\u contents('php://input'); $postData=json_decode($rawPostBody,true);打印($postData);------------数据由其他服务器发送,重定向到我的页面名receiver2.php。其中,只有我能够将数据写入文本文件名data2.txt,但无法通过正常的$\u POST变量获取数据。我已尝试此文件获取内容(php://input
);但没有结果给我。如果这不起作用,那么数据不会发送到此文件,但我可以从这里将数据写入文本文件。请看我编辑的帖子。我把这两个文件都贴在那里了。
$arr = json_decode($postdata, true);