Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Mencegah Penyerahan Berbilang Borang dalam PHP: Panduan Komprehensif

Cara Mencegah Penyerahan Berbilang Borang dalam PHP: Panduan Komprehensif

Susan Sarandon
Susan Sarandonasal
2024-11-15 05:52:02875semak imbas

How to Prevent Multiple Form Submissions in PHP: A Comprehensive Guide

Mencegah Penyerahan Berbilang Borang dalam PHP: Panduan Komprehensif

Penyerahan berbilang borang boleh menjadi masalah dalam aplikasi web, yang membawa kepada akibat yang tidak diingini. Artikel ini akan menyediakan penyelesaian terperinci untuk mengelakkan berbilang penyerahan dalam PHP.

Penyelesaian Menggunakan Token

PHP menawarkan penyelesaian yang teguh menggunakan token unik yang boleh dijana dan disimpan dalam sesi. Begini cara untuk melaksanakannya:

  1. Jana Token: Gunakan fungsi getToken() untuk mencipta token unik yang akan dibenamkan dalam borang.
  2. Sahkan Token: Apabila borang diserahkan, semak kesahihan token yang diserahkan menggunakan fungsi isTokenValid($token). Jika token itu sah, alih keluarnya daripada senarai token yang sah untuk mengelakkan penggunaan semula.
  3. Borang Paparan: Dapatkan token untuk borang semasa menggunakan getToken() dan masukkannya sebagai tersembunyi input dalam borang.

Contoh Kod:

<?php
session_start();

function getToken(){
  $token = sha1(mt_rand());
  $_SESSION['tokens'][$token] = 1;
  return $token;
}

function isTokenValid($token){
  if(!empty($_SESSION['tokens'][$token])){
    unset($_SESSION['tokens'][$token]);
    return true;
  }
  return false;
}

$postedToken = filter_input(INPUT_POST, 'token');
if(!empty($postedToken) && isTokenValid($postedToken)){
  // Process Form
}

$token = getToken();
?>
<form method="post">
  <input type="hidden" name="token" value="<?php echo $token; ?>"/>
  <!-- Form Content -->
</form>

Ubah Hala dan Keserasian Ke Belakang

Untuk mengekalkan navigasi ke belakang dan ke hadapan yang betul, adalah disyorkan untuk melaksanakan corak POST/ubah hala/GET. Ini melibatkan:

  1. SANGKAN borang dengan token.
  2. Setelah pengesahan token berjaya, lakukan tindakan yang diingini dan halakan pengguna ke halaman baharu.
  3. Gunakan permintaan GET untuk halaman diubah hala untuk menghalang borang daripada diserahkan semula apabila pengguna mengklik butang "kembali".

Dengan mengikuti langkah ini, anda boleh menghalang penyerahan berbilang borang dengan berkesan dan memastikan integriti aplikasi web anda.

Atas ialah kandungan terperinci Cara Mencegah Penyerahan Berbilang Borang dalam PHP: Panduan Komprehensif. 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