我有这段代码:
function WriteLog($offer,$values) {
$Filename = "./".$offer.date('Ymd').".txt";
$fh = fopen($Filename, 'a') or die("can't open file");
$filecontent = $values;
$filecontent .= PHP_EOL;
fwrite($fh,$filecontent);
fclose($fh);
}
$aff = "100";
if (isset($HTTP_RAW_POST_DATA)) {
echo $aff;
WriteLog('events',$aff);
}
问题在于:$aff
变量无法访问。回调$aff
语句中的if ISSET
不会显示$aff
的值。什么可能导致这个?如何访问$aff
变量的值?请注意,WriteLog()
函数已执行,但$aff
没有值。请帮我解决一下这个。谢谢!
答案 0 :(得分:0)
$HTTP_RAW_POST_DATA
包含原始POST数据。
在您的情况下$HTTP_RAW_POST_DATA
不包含任何值,因此您的if
条件失败,并且不会打印echo $aff;
值。
$aff = "100";
if (isset($HTTP_RAW_POST_DATA)) {
echo $aff;
WriteLog('events',$aff);
}else{
echo "HTTP_RAW_POST_DATA not set";
}
答案 1 :(得分:0)
$ HTTP_RAW_POST_DATA requires an ini value to be set,使用输入流应该没有任何特殊的ini设置,也是'首选'方法。
您需要使用替代方法
$postData = file_get_contents('php://input')
答案 2 :(得分:0)
它只是一个想法,如果检查或不检查它进入内部的$ aff的价值。
$aff = "100";
if (isset($HTTP_RAW_POST_DATA)) {
var_dump($aff);
WriteLog('events',$aff);
}
else{
var_dump($aff);
}