Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mencegah Penyerahan Borang Berbilang dalam PHP?

Bagaimanakah Saya Boleh Mencegah Penyerahan Borang Berbilang dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-10-21 21:27:03852semak imbas

How Can I Prevent Multiple Form Submissions in PHP?

Mencegah Pelbagai Sisipan Semasa Penyerahan Borang dalam PHP

Apabila mereka bentuk borang, adalah penting untuk menghalang pengguna daripada menghantar berbilang data yang sama secara tidak sengaja atau sengaja kali. Ini boleh menyebabkan data tidak konsisten dan isu lain. Dalam PHP, terdapat beberapa kaedah yang berkesan untuk mencapai ini:

1. Lumpuhkan Butang Hantar Borang Selepas Penyerahan

Menggunakan JavaScript, lumpuhkan butang hantar borang setelah borang diserahkan. Walau bagaimanapun, ini bukan penyelesaian yang mudah, kerana pengguna boleh menyerahkan borang tanpa mengklik butang dan pengguna yang dilumpuhkan JavaScript mungkin terjejas.

2. Manfaatkan Sesi PHP untuk Menjejaki Masa Penyerahan

Tubuhkan pembolehubah sesi ($_SESSION['posttimer']) yang merekodkan cap masa semasa. Sebelum memproses penyerahan borang, sahkan kewujudan pembolehubah ini dan semak sama ada terdapat perbezaan masa yang mencukupi (cth., 2 saat) antara masa semasa dan cap waktu sesi. Jika selang masa terlalu pendek, penyerahan dianggap sebagai pendua.

3. Masukkan Token Unik ke dalam Borang

Jana token unik dalam setiap POST. Cipta pembolehubah sesi untuk token ini dan benamkannya dalam borang. Apabila borang diserahkan, jana semula token dan bandingkan dengan yang disimpan dalam sesi. Jika tidak sepadan, borang telah diserahkan dua kali dan harus dianggap tidak sah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Penyerahan Borang Berbilang dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn