记录发送到函数的POST变量

时间:2013-05-23 09:22:13

标签: php post joomla

我目前正在构建一个表单,在表单中的某个时刻将用户发送到外部支付站点。 此时,我已经为我提供这个支付服务的服务提供了两个URL,一个用于调用将在pyment点更新用户记录的函数,以及用户在付款后返回的URL。过程完成。 第一个URL(更新用户记录的函数调用)是“带外”,永远不会显示给用户,而是来自服务器而不是客户端IP。因此我处于一个“盲目的小巷”,因为我看不到传递给我的变量,显然这些对于我来解析和操纵这些数据(post)是很重要的更新我们的记录。

我已经尝试在我的函数中编写一个简单的算法,它将循环遍历这些POST变量并将它们写入文本文件但不幸的是我无法使其工作(可能与Joomla有关吗?)。

这是该功能:

public function harlandReturn() {
        $myFile = "text.txt";
        $fh = fopen($myFile, 'w');
        $stringData = "";
        foreach($_POST as $i => $v) {
            $stringData .= $i . " : " . $v . " / ";             
        }
        fwrite($fh, $stringData);
        fclose($fh);
    }

我的主要问题是,有没有办法让我能够在文件,电子邮件或类似内容中记录和存储发送给它的任何数据,以便我可以看到它们是什么(整数,字符串,布尔值等)和他们的名字?

由于

2 个答案:

答案 0 :(得分:1)

因为变量并不总是可预测的 - 例如,子数组 - 你可能最好将数组序列化并将其写入文件。

if(is_writable($myFile)) {
    $fh = fopen($myFile, 'w');
    $stringData = serialize($_POST);
    fwrite($fh, $stringData);
    fclose($fh);
}

然后,您可以直接打开文件或使用unserialize创建快速脚本,将其视为已发布。

请注意,您没有进行任何错误检查以查看文件是否可写等等。

答案 1 :(得分:0)

您的功能缺少fwrite()

$myFile = "text.txt";
$fh = fopen($myFile, 'w');
foreach($_POST as $i => $v) {
  $stringData = $i . " : " . $v . " / ";
  fwrite($fh, $stringData);             
}
fclose($fh);

$myFile = "text.txt";
$fh = fopen($myFile, 'w');
foreach($_POST as $i => $v) {
  $stringData .= $i . " : " . $v . " / ";

}
fwrite($fh, $stringData); 
fclose($fh);