无法在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');
}
  • 获取数据并将其写入文件一次比在循环中写入要快
  • 如果post不是请求类型(未发送),则它将失败,并显示“post请求未发送”
  • 如果出现2,则检查表单方法是否设置为POST,操作url是否正确
  • 另外,如果您的帖子数据是原始的,那么您可以从名为
    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);