Dalam aplikasi web, adalah penting untuk menangani isu biasa pertindihan data yang tidak disengajakan akibat penyegaran halaman selepas penyerahan borang. Persoalannya timbul apabila penyerahan borang menjalankan operasi, seperti sisipan pangkalan data dan muat semula seterusnya membawa kepada lebihan data yang tidak diingini.
Untuk menyelesaikan isu ini, amalan terbaik tidak memaparkan respons pada halaman yang sama selepas penyerahan. Sebaliknya, ubah hala pengguna ke halaman lain setelah tindakan selesai.
Pertimbangkan kod sampel yang diberikan dalam soalan:
<?php if (isset($_POST['name'])) { // Database operation (e.g., inserting $_POST['name']) echo "Operation Done"; die(); } ?>
Dalam senario ini, apabila anda serahkan borang, data dimasukkan ke dalam pangkalan data, dan pengguna melihat mesej "Operasi Selesai." Walau bagaimanapun, jika halaman dimuat semula selepas itu, kod penyerahan borang akan dijalankan semula, yang berpotensi mengakibatkan pemasukan data pendua.
Untuk mengelakkan masalah ini, pertimbangkan kod yang disemak berikut:
<?php if (isset($_POST['name'])) { // Database operation (e.g., inserting $_POST['name']) // Set a success flash message (assuming you're using a framework) header('Location: /path/to/record'); exit; } ?>
Isi Penting:
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Penyerahan Semula Secara Tidak Sengaja pada Muat Semula Halaman dalam Aplikasi Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!