Rumah >pembangunan bahagian belakang >tutorial php >Prinsip dan aplikasi teknologi penyerahan anti goncang dan anti pendua PHP

Prinsip dan aplikasi teknologi penyerahan anti goncang dan anti pendua PHP

WBOY
WBOYasal
2023-10-12 12:16:411216semak imbas

PHP 防抖和防重复提交技术的原理与应用

Prinsip dan aplikasi teknologi anti-goncang dan anti-penyerahan semula PHP

Dengan perkembangan Internet, pengguna sering mengklik dengan kerap atau menghantar semula apabila mengendalikan halaman web, yang akan membawa masalah tertentu kepada sistem. beban dan bahaya keselamatan. Untuk menyelesaikan masalah ini, pembangun sering menggunakan teknik penyerahan anti-goncang dan anti-pendua. Artikel ini akan memperkenalkan prinsip teknologi anti goncang dan antiserahan semula dalam PHP dan memberikan contoh kod yang sepadan.

1. Prinsip dan aplikasi teknologi anti goncang

Teknologi anti goncang bertujuan untuk menyelesaikan masalah klik atau operasi yang kerap pengguna, dan mencapai tujuan mengurangkan permintaan yang tidak sah dengan menangguhkan pelaksanaan atau menggabungkan berbilang operasi. Prinsipnya bergantung terutamanya pada fungsi dan penutupan setTimeout Javascript.

1.1 Prinsip

Apabila pengguna membuat klik yang kerap, kita boleh menggunakan fungsi setTimeout untuk menangguhkan pelaksanaan fungsi Jika peristiwa dicetuskan semula dalam masa kelewatan, pemasa sebelumnya akan dikosongkan dan pemasaan akan bermula semula . Hanya apabila pengguna berhenti beroperasi untuk tempoh masa tertentu, fungsi pelaksanaan akan dicetuskan.

1.2 Aplikasi

Dalam projek PHP, teknologi anti-goncang boleh dilaksanakan melalui kod JS bahagian hadapan Langkah-langkah khusus adalah seperti berikut:

Langkah 1: Perkenalkan perpustakaan jQuery atau perpustakaan JS yang dilaksanakan sendiri ke dalam halaman.

Langkah 2: Tulis fungsi anti-goncang, seperti ditunjukkan di bawah:

function debounce(func, delay) {
  let timer = null;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(function() {
      func.apply(this, arguments)
    }, delay);
  }
}

Langkah 3: Panggil fungsi anti-goncang, seperti yang ditunjukkan di bawah:

$('button').click(debounce(function() {
  // 处理点击事件的业务逻辑
}, 1000));

2. Prinsip dan aplikasi teknologi penyerahan anti-pendua

Teknologi penyerahan anti-pendua digunakan Selesaikan masalah pengguna berulang kali menghantar borang, terutamanya dengan menjana token pengenalan unik. Prinsip ini boleh dibahagikan kepada dua bahagian: hujung hadapan menghasilkan token, dan hujung belakang mengesahkan token.

2.1 Bahagian hadapan menjana token

Sebelum pengguna menyerahkan borang, bahagian hadapan akan menjana token unik dan menyimpannya dalam sessionStorage atau kuki. Cara untuk menjana token boleh melalui algoritma penyulitan atau nombor rawak.

function generateToken() {
  var token = ''; 
  // 生成唯一不重复的token的逻辑代码
  return token;
}

Hantar token sebagai nilai medan tersembunyi ke bahagian belakang sebelum borang diserahkan.

<form action="submit.php" method="post">
  <input type="hidden" name="token" value="<?php echo generateToken(); ?>">
  <!-- 表单的其他控件 -->
  <input type="submit" value="提交">
</form>

2.2 Token pengesahan backend

Selepas backend menerima penyerahan borang, token perlu disahkan. Jika pengesahan token lulus, logik perniagaan borang diproses dan token dikosongkan daripada sessionStorage atau kuki untuk mengelakkan penyerahan berulang.

session_start();
$token = $_POST['token'];

if (isset($_SESSION['token']) && $_SESSION['token'] === $token) {
  // token验证通过
  unset($_SESSION['token']); // 清除token
  // 处理表单提交的业务逻辑
} else {
  // token验证失败,返回错误提示
}

3. Ringkasan

Artikel ini memperkenalkan prinsip dan aplikasi teknologi penyerahan anti goncang dan anti pendua PHP. Teknologi anti goncang mengurangkan penghantaran permintaan yang tidak sah dengan menangguhkan pelaksanaan atau penggabungan operasi. Teknologi penyerahan anti-berulang menghalang penyerahan borang berulang dengan menjana token untuk memastikan ketepatan dan keselamatan data. Dalam pembangunan sebenar, kita boleh memilih teknologi yang sesuai untuk aplikasi berdasarkan keperluan projek untuk meningkatkan prestasi sistem dan pengalaman pengguna.

Rujukan:

  1. [Mekanisme anti goncang](https://www.jianshu.com/p/76bdffb2a268)
  2. [Cara menghalang penyerahan borang data pendua](https://segmentfault.com/a / 1190000017279731)

Atas ialah kandungan terperinci Prinsip dan aplikasi teknologi penyerahan anti goncang dan anti pendua 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