理解できない問題があります。
この問題は、Opera 11.50 ブラウザーでのみ発生します。ファイル関数に書き込むだけです。
fopen, LOCK_EX, fputs, LOCK_UN, fclose.
通常ページを開くと、すべて問題ありません。しかし、ページをリロードすると、文字列がファイルに複数回 (2 回、場合によっては 3 回) 書き込まれます。私がチェックしたところ、関数は一度だけ起動され、エコーは正しい文字列を返します。
また、更新時に、Opera は php セッション変数と Cookie を無視します。もちろん、セッション開始前にバッファを使用します。
他のブラウザでは、この問題は発生しません。
Cookieとブラウザの設定を確認しました。ブラウザも再インストール。新たにダウンロードしてインストールした Opera 11.50 を搭載した 2 台目の PC でも同じ問題が発生します。
何か案は?
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");
}
通常、ページに入ると、すべて問題ありません。リロード時に「test!」とエコーします。は実行されませんが、ファイルには "What?!" という 2 つのエントリが表示されます。この関数のみがそのファイルに出力されます。