Webページが1つあります(A.htmlと呼ぶことができます)。 A.htmlには、単純なdocument.location = "B.php"を使用してページを動的なPHPページ(それをB.phpと呼ぶ)に切り替えるJavaScriptがいくつかあります。 B.phpは、表示されるクッキーに基づいてmysqlクエリを実行し、mysqli-> affected_rows変数に基づいて結果を返します。しかし、mysqli-> affected_rowsのページスイッチが0になるたびに、mysqlテーブルは想定通りに変更されます。面白いことに、URLバー(またはページを更新する)を使ってB.phpにまっすぐ行くと、mysqli-> affected_rowsは1になります。mysqli-> affected_rowsによるキャッシュ制御の乱れ
wiresharkを見ると、2つのGETリクエストの唯一の違いは、Cache-Control:max-age = 0という行が2番目の(javascript以外の)ものであることです。なぜこれが何かに影響を与えることを誰もが知っていますか?これを修正できる方法があるかどうか?
編集:HERESにコード
$req = $mysqli->prepare('update users set sts=NOW() where i=? and sid=? and sip=? and NOW()-sts <= '.$authentication_timeout.';');
if ($mysqli->error) {
log_mysql_error($mysqli);
die('Unexpected error:'.$mysqli->error);
}
$req->bind_param('sss',$uid,$sid,$_SERVER['REMOTE_ADDR']);
$req->execute();
print $mysqli->affected_rows;
$req->close();
あなたの解決策を試したが、うまくいかなかった。以前と同じ結果、javascriptがページを変更しても行が変更されていないと主張している(たとえそれがあったとしても)。 –