Cara menghalang penyerahan semula borang apabila halaman dimuat semula (F5/CTRL+R)
P粉151466081
2023-08-29 11:37:35
<p>Saya mempunyai borang ringkas yang menyerahkan teks ke jadual SQL saya. Masalahnya ialah, selepas pengguna menghantar teks, mereka boleh memuat semula halaman dan menyerahkan data semula tanpa mengisi borang lagi. Saya boleh mengubah hala pengguna ke halaman lain selepas menyerahkan teks, tetapi saya mahu pengguna kekal pada halaman yang sama. </p>
<p>Saya masih ingat membaca sesuatu tentang memberi setiap pengguna ID sesi yang unik dan membandingkannya dengan nilai lain, yang menyelesaikan masalah yang saya hadapi, tetapi saya terlupa di mana ia berada. </p>
Saya juga ingin menegaskan bahawa anda boleh menggunakan kaedah JavaScript
window.history.replaceState
untuk mengelakkan penyerahan semula pada butang muat semula dan butang kembali.Bukti konsep: https://dtbaker.net/files/ Prevent-post-resubmit.php(pautan tidak lagi sah)Saya masih mengesyorkan kaedah Post/Redirect/Get, tetapi ini adalah penyelesaian JS novel.
Gunakan terbitkan/ubah hala/dapatkan corak. http://ms.wikipedia.org/wiki/Post/Redirect/Get
Di tapak web saya, saya akan menyimpan mesej dalam kuki atau sesi, mengubah hala selepas menyiarkan, membaca kuki/sesi, dan kemudian mengosongkan nilai sesi atau pembolehubah kuki itu.