PHP-捕获所有POST变量
PHP中有没有一种方法可以捕获所有发送到页面的post和get变量 我正在PayPal沙箱中测试我的PayPal订阅网站,但我做的每一笔交易都会触发代码中的无效交易 所以,我想捕获PayPal发送到我的ipn页面的所有内容,看看我是否能够理解正在发生的事情。这可能吗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请求中 只需根据需要保存和/或打印这些数组的内容
谢谢 您有
$\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);由于它将整个对象放在一个字符串中,因此它非常适合写入文件或存储在数据库中