Значение переменных в php коде не сохраняется. Почему?
Не изучал php, а сейчас очень нужен в небольших количествах. С горе пополам и при помощи ChatGPT написал скрипт на php.
$last_date;
$last_result;
$today;
$hour;
$result;
if (!isset($_POST['TechBr'])) exit;
if ($_POST['TechBr'] == "bool"){
echo 'false';
}elseif ($_POST['TechBr'] == "reason"){
echo 'Просто так';
}elseif ($_POST['TechBr'] == "priceoil"){
$today = date('H:i');
$hour = date('H');
if($hour > 10){
if($last_date == $today){
$last_result = file_get_contents('last_par.txt');
echo $last_result;
}else{
$result = rand(20, 51);
$last_date = $today;
$last_result = $result;
file_put_contents('last_par.txt', $last_result);
echo $result;
}
}
}elseif ($_POST['TechBr'] == "pricegas"){
$rand2 = rand(100, 181);
echo $rand2;
}elseif ($_POST['TechBr'] == "pricecoal"){
$rand3 = rand(1, 5);
echo $rand3;
}elseif ($_POST['TechBr'] == "time"){
date_default_timezone_set('Europe/Moscow');
echo date('H:i');
}
?>
Проблема в том, что при get-запросе "TechBr" с параметром "priceoil", должно выдаваться значение, которые генерируется 1 раз в сутки после 10 часов по utc, а в другое время должен выдаваться прошлый результат. Но почему-то при каждом таком запросе генерируется новое значение. Почему? Что я сделал не так? Я конечно совершенно новенький в php, но по логике вроде все должно работать. Подскажите, пожалуйста, где ошибка? P.S. Сделал сохранение значение в .txt файл и последующее его извлечение, не помогло. Тоже самое, при каждом get-запросе генерируется новое значение и, что странно, в .txt файл также записывается всегда новое значение. Также, если я скопирую код и вставлю его в php-онлайн компилятор(заменяя условие get-запроса на цикл for) все работает! Почему так?