У меня проблема, которую я не могу понять.
Проблема возникает только в браузере Opera 11.50. У меня есть просто функция записи в файл. fopen, LOCK_EX, fputs, LOCK_UN, fclose
.
Когда я нормально открываю страницы, все ок. Но когда я перезагружаю страницу, строка записывается в файл несколько раз (2, иногда 3). Я проверил, функция запускается только один раз, и эхо возвращает правильную строку.
Также при обновлении Opera игнорирует переменную сеанса php и файлы cookie. Конечно, я использую буфер перед началом сеанса.
Для любого другого браузера такой проблемы не возникает.
Я проверил куки и настройки браузера. Так же переустанавливал браузер. На втором ПК со свеже скачанной и установленной оперой 11.50 такая же проблема.
Есть идеи?
ps: я прочитал эту связанную тему, но я не нашел там ответа на свою проблему.
Есть код:
if (!isset($_SESSION['foo']) && ($check4 === false) && !isset($_COOKIE['bar'])) {
echo "test!";
$fileHandler = fopen(MASTER_PATH . "/data/logs/loger.txt", "ab");
flock($fileHandler, LOCK_EX);
fputs($fileHandler, "What?!");
flock($fileHandler, LOCK_UN);
fclose($fileHandler);
$_SESSION['foo'] = true;
$check4 = true;
setcookie("bar");
}
При обычном входе на страницу все в порядке. При перезагрузке эхо "тест!" не запускается, но в файле появляются две записи "Что?!". Только эта функция имеет вывод в этот файл.