Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa sajakah metode untuk mencegah posting ganda dalam formulir? (PHP)

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kelas keamanan di Codeigniter

  2. Pengindeksan untuk operasi BINARY LIKE di MySQL

  3. Optimalkan kueri peringkat lambat

  4. Proses anak Apache keluar dengan status 255

  5. Apostrof dan Titik Dua di Tautan Cantik