PHP-捕获所有POST变量

PHP-捕获所有POST变量,php,post,get,Php,Post,Get,PHP中有没有一种方法可以捕获所有发送到页面的post和get变量 我正在PayPal沙箱中测试我的PayPal订阅网站,但我做的每一笔交易都会触发代码中的无效交易 所以,我想捕获PayPal发送到我的ipn页面的所有内容,看看我是否能够理解正在发生的事情。这可能吗 谢谢 您有$\u请求,它是$\u GET和$\u POST的组合 Post值位于$\u Post数组中 Get值位于$\u Get数组中 Get、post和cookie值放置在$\u请求中 只需根据需要保存和/或打印这些数组的内容

PHP中有没有一种方法可以捕获所有发送到页面的post和get变量

我正在PayPal沙箱中测试我的PayPal订阅网站,但我做的每一笔交易都会触发代码中的无效交易

所以,我想捕获PayPal发送到我的ipn页面的所有内容,看看我是否能够理解正在发生的事情。这可能吗


谢谢

您有
$\u请求
,它是
$\u GET
$\u POST
的组合


Post值位于
$\u Post
数组中

Get值位于
$\u Get
数组中

Get、post和cookie值放置在
$\u请求中

只需根据需要保存和/或打印这些数组的内容

有关更多详细信息,请查看:

是的

在IPN页面上,您可以很容易地记录所有get、post和cookie变量

试试这个:

ob_start();
print_r($_REQUEST);
$data = ob_get_contents();
ob_end_clean();

file_put_contents("Path/to/log.file",$data);

对于PayPal IPN,您应该能够使用
$postdata=file\u get\u contents('php://input');
获取验证回调所需的原始post数据。

我有一个简单的方法,可以帮助我捕获所有post数据:

$post_vars = "";
if ($_POST) {
    $kv = array();
    foreach ($_POST as $k => $v) {
        if (is_array($v)):
            $temp = array();
            foreach ($v as $v2) {
                $temp[] = $v2;
            }
            $kv[] = "$k=" . join("|", $temp);
        else:
            $kv[] = "$k=$v";
        endif;
    }
    $post_vars = join("&", $kv);
}
这允许您捕获所有post数据(不管其名称或值),然后将其存储在字符串中,非常适合插入数据库,尽管您可能希望对其进行url编码。我已经对其进行了更新,以包括对阵列的支持,但您必须根据自己的需求对其进行定制,它会产生如下输出:

firstname=Terry&lastname=Kernan&userid=111111&device=9999999&text=Hello&questions=q1 | q2 | q3&answers=a1 | a2 | a3&type=manual


<?php  
$req = 'What i reveive from paypal=====';          
foreach ($_POST as $key => $value) // Loop through the key value pairs
    {         
        $req .= "\n\r$key=$value";                    // Add the key value pairs to the variable
    }
        mail('<Your own email address>','Data',$req,'from: <any email address of your own domain>');//mail yourself    
?>

simpler:file\u put\u内容(“path/to/log.file”,print\r($\u请求,true));如何将其捕获到变量中?我的应用程序已经发送了一封电子邮件,我可以将其添加到电子邮件正文中。@tacone,不知道要打印的第二个参数,谢谢@saburius输出在
$data
变量中。这看起来像一个简单的方法,是否有一个特殊的处理程序来注册以使其工作?@TerryKernan:不,没有特殊的处理程序。但请注意,它不适用于内容类型:多部分/表单数据。有关详细信息,请参阅。我一直使用的另一个有用的方法是:序列化($\u POST);由于它将整个对象放在一个字符串中,因此它非常适合写入文件或存储在数据库中