Rumah  >  Soal Jawab  >  teks badan

python - 如何防止狂点提交表单按钮导致的数据重复?

高洛峰高洛峰2712 hari yang lalu1559

membalas semua(12)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:07:45

    Lumpuhkan butang serta-merta selepas mengkliknya Jika penyerahan gagal, pulihkan butang itu, jika tidak, ia akan diubah hala ke halaman kejayaan.

    Atau selepas mengklik, topeng akan muncul.

    Walau bagaimanapun, kedua-dua penyelesaian di atas memerlukan js. Mengapa anda tidak mahu menggunakan js?

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:07:45

    1.Butang JS menghalang klik berulang

    2. Kawalan cache sisi pelayan, kaedahnya ialah menulis perpustakaan berulang kali

    3 Cipta indeks unik dalam pangkalan data (contohnya, tajuk siaran adalah unik dan tidak boleh diulang)

    balas
    0
  • 阿神

    阿神2017-04-18 10:07:45

    Boleh dikawal dari hadapan dan belakang:

    • Tambah logik kawalan bahagian hadapan Apabila pengguna mengklik untuk menyiarkan, lumpuhkan butang "Siar"

    • Tambah logik kawalan latar belakang Apabila permintaan siaran dihantar, semak sama ada orang itu telah menghantar siaran dengan tajuk dan kandungan yang sama, larang penciptaan siaran pendua ini

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:07:45

    Anda boleh menjana id apabila templat dipaparkan, kemudian serahkan id bersama-sama semasa menyerahkan, dan kemudian bandingkan dengan hujung belakang, supaya jika id yang diluluskan tidak betul, maka pemprosesan akan diabaikan.

    balas
    0
  • PHPz

    PHPz2017-04-18 10:07:45

    Pertama, penyelesaian yang lebih mudah ialah menggunakan fungsi nyahlantun untuk mengehadkan kekerapan pencetus panggil balik DOM.

    Kedua, jika anda masih perlu mempertimbangkan situasi di mana pengguna melumpuhkan js dalam era ini, maka jangan lakukannya di bahagian hadapan.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:07:45

    Masalah ini tidak boleh diselesaikan dengan bergantung pada bahagian hadapan sahaja.

    1. Tambah caching, gunakan peta untuk mesin tunggal dan gunakan redis untuk caching teragih.

    2. Gunakan prosedur tersimpan Mysql untuk menyerahkan tekanan konkurensi kepada pangkalan data

    3. Kunci, kunci optimistik atau kunci pesimis

    4. Kunci unik

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:07:45

    Halaman semasa menjana id unik Apabila menyerahkan, pelayan menentukan bahawa ia hanya akan diproses sekali. Contohnya, halaman penyerahan borang laravel mempunyai csrf_token

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:07:45

    Kemudian tulis csrf anda sendiri di latar belakang Sediakan beberapa idea dan jana kunci secara automatik apabila menyerahkan kandungannya, tetapkan semula kunci itu atau kosongkan hanya penyerahan pendua

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:07:45

    Borang kiriman borang melepasi rentetan rawak medan tersembunyi dan masukkannya ke dalam sesi
    Apabila atur cara menerima rentetan rawak ini dan membandingkannya dengan rentetan dalam sesi, jika ia sama, ia akan diserahkan dan jika ia tidak sama, ia akan menggesa perbandingan ralat Hanya tetapkan semula sesi ini

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:07:45

    1. Pengesahan JS, lumpuhkan butang hantar selepas penyerahan
    2. Pengesahan sisi pelayan, setiap kali halaman dimuat semula, token akan dihasilkan dalam halaman tersebut dinilai sama ada token itu sah, maka data akan diproses dan token akan dimusnahkan, jika front-end menghantar berulang kali, ia pasti tidak akan diproses kerana token dimusnahkan

    balas
    0
  • Batalbalas