Переменные снаружи if ISSET не могут быть доступны внутри оператора if ISSET
У меня есть этот код:
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
не имеет значения. Пожалуйста, помогите мне с этим. Спасибо!
3 ответа
Это просто идея проверить значение $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')