Jika Anda ingin mencegah pengiriman ganda, Anda harus menyimpan status "dikirim" versus "tidak dikirim". Anda memiliki beberapa opsi untuk menyimpan informasi ini.
- Basis Data - Tambahkan bidang tersembunyi dengan nilai autogenerated yang unik (Anda dapat menghasilkan string acak pendek dan menambahkan waktu saat ini). Nilai ini juga dapat digunakan untuk mengidentifikasi percakapan -- jika Anda memerlukan percakapan web stateful. Tambahkan nilai ini ke database dan buat itu unik. Kekurangan:penyimpanan berlebihan dalam database, penurunan kinerja pada penyisipan komentar, harus menghasilkan string yang unik.
- Sesi - Tambahkan bidang tersembunyi yang sama dengan nilai yang dihasilkan dalam masalah serupa. Saat pengguna mengirimkan formulir, simpan nilainya di sesi jika belum ada. Jika ya, itu adalah pengajuan ganda. Kekurangan:Anda masih perlu membuat token unik.
- Peramban - (1) Tambahkan beberapa javascript untuk menonaktifkan tombol kirim setelah diklik. (2) memiliki bidang tersembunyi yang dimulai dengan nilai 0 dan diubah menjadi 1 saat pengguna mengklik tombol kirim. Jika pengguna mengklik tombol lagi, Anda memeriksa apakah nilainya 1 dan batalkan jika ya. Keuntungan:tidak ada string unik. Kekurangan:membutuhkan javascript untuk diaktifkan; Anda mungkin tetap memerlukan string untuk mengimplementasikan percakapan web stateful.