我有这个代码:
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
变量不可访问。在if ISSET
语句中回显$aff
不会显示$aff
的值。可能是什么原因造成的?如何访问$aff
变量的值?请注意,执行了WriteLog()
函数,但$aff
没有值。请帮我做这个。谢谢
这只是一个检查$aff值的想法,无论它是否进入内部。
$aff = "100";
if (isset($HTTP_RAW_POST_DATA)) {
var_dump($aff);
WriteLog('events',$aff);
}
else{
var_dump($aff);
}
$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";
}
$HTTP_RAW_POST_DATA需要设置ini值,使用输入流应该在没有任何特殊ini设置的情况下工作,并且也是"首选"方法。
你需要使用另一种方法
$postData = file_get_contents('php://input')
文档在这里