我目前正在构建一个表单,在表单中的某个时刻将用户发送到外部支付站点。 此时,我已经为我提供这个支付服务的服务提供了两个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);
}
我的主要问题是,有没有办法让我能够在文件,电子邮件或类似内容中记录和存储发送给它的任何数据,以便我可以看到它们是什么(整数,字符串,布尔值等)和他们的名字?
由于
答案 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);