Mencegah Penyerahan Borang Berlebihan pada Muat Semula
Dalam pembangunan aplikasi web, adalah perkara biasa untuk menghadapi situasi di mana menyegarkan halaman selepas penyerahan borang membawa kepada berbilang penyerahan yang tidak diingini. Tingkah laku ini boleh berlaku apabila kod sebelah pelayan tidak mengendalikan pemprosesan penyerahan borang dengan betul.
Pertimbangkan contoh berikut di mana borang bertujuan untuk memasukkan data ke dalam pangkalan data semasa penyerahan:
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] echo "Operation Done"; die(); } ?> <form action='page.php' method='post' name="myForm"> <input type="text" maxlength="50" name="name" class="input400" /> <input type="submit" name="Submit" /> </form>
Selepas menghantar borang, data berjaya dimasukkan ke dalam pangkalan data dan mesej "Operasi Selesai" dipaparkan. Walau bagaimanapun, jika halaman tersebut kemudiannya dimuat semula, penyerahan borang akan diulang, menyebabkan data dimasukkan semula.
Penyelesaian: Ubah Hala Selepas Penyerahan Borang Berjaya
Untuk mengelakkan masalah ini, adalah penting untuk mengubah hala ke halaman lain selepas berjaya memproses penyerahan borang. Ini memastikan bahawa apabila halaman dimuatkan semula, ia adalah halaman baharu yang sedang dimuatkan, bukan halaman penyerahan borang yang sama.
Contoh dengan Ubah Hala:
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] header('Location: /path/to/record'); exit; } ?>
Dengan menambah pengalihan pengepala, kod memastikan bahawa selepas operasi pangkalan data selesai, ubah hala berlaku ke laluan baharu. Jika pengguna memuat semula halaman, mereka akan diarahkan ke laluan baharu dan bukannya halaman penyerahan borang.
Faedah Mengubah Hala:
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Penyerahan Borang daripada Diulang pada Muat Semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!