ホームページ >バックエンド開発 >PHPチュートリアル >一部のブラウザでは検証コードがキャッシュされるため、ページを再度開くと検証コードの有効期限が切れていることを示すメッセージが表示されます。
ブラウザを更新すると正常になります。
解決方法はありますか? 確認コードを強制的にリロードできるコードはありますか?
生成されたアドレスの後に js ランダム パラメーター url?r=Math.random() を追加します
5ff63d95cf657e45762702af9a40232d
< ;input type="button" onclick="document.getElementById('checkcode').src='code.php?r=' + Math.random() " value="クリックして確認コードを表示します" /> ;
< ;img src="captcha.php?t=31136230bab8657d4d2be6910927cc4f">
この問題は、検証コードにキャッシュ無効ヘッダーを追加することで完全に解決できます。画像生成プログラム
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the pastheader ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1header ("Pragma: no-cache"); // HTTP/1.0。使用するたびに URL を変更する必要はありません
Math.random()
すでにありますが、現在のコードは次のとおりです:
b473289fef3741ed4751a0d68ba43ac4
b51462e001ad2e853792f4c309abd465
はすべて追加されましたが、機能しません
この問題は一度解決できますそして、検証コード画像生成プログラムにキャッシュ無効ヘッダーを追加するだけですべて完了です
毎回それを使用する必要がなく、URLを変更する時期が来ました