Bagaimana untuk Mencegah Pelbagai Sisipan Semasa Menghantar Borang dalam PHP?

Linda Hamilton
Lepaskan: 2024-10-21 21:32:02
asal
855 orang telah melayarinya

How to Prevent Multiple Inserts When Submitting Forms in PHP?

Menghalang Berbilang Sisipan pada Penyerahan Borang dalam PHP

Berbilang sisipan semasa menghantar borang boleh berlaku apabila pengguna menekan butang hantar beberapa kali. Ini boleh menyebabkan pertindihan data yang tidak diingini. Terdapat beberapa pendekatan untuk menangani isu ini:

  1. Melumpuhkan Butang Hantar JavaScript:

    Kaedah ini menggunakan JavaScript untuk melumpuhkan butang hantar selepas ia diklik. Walau bagaimanapun, ia tidak boleh dipercayai kerana borang boleh diserahkan tanpa menggunakan butang atau dengan JavaScript dilumpuhkan.

  2. Cap Masa Sesi PHP:

    Pendekatan ini menetapkan pembolehubah sesi ($_SESSION['posttimer']) kepada cap masa semasa semasa penyerahan borang. Semasa pemprosesan borang, ia menyemak sama ada pembolehubah wujud dan membandingkannya dengan cap masa semasa. Jika perbezaan masa kurang daripada ambang yang dipratentukan (cth., 2 saat), penyerahan berganda dikesan.

  3. Kemasukan Token Unik:

    Kaedah ini melibatkan memasukkan token unik dalam setiap bentuk. Pembolehubah sesi memegang token yang digunakan dalam borang. Selepas penyerahan borang, token baharu dijana. Jika token yang diserahkan tidak sepadan dengan token sesi, ia dianggap sebagai penyerahan berganda. Contoh:

    <code class="php">// form.php
    $_SESSION['token'] = md5(session_id() . time());
    
    echo '<form action="foo.php" method="post">
           <input type="hidden" name="token" value="' . $_SESSION['token'] . '" />
           <input type="text" name="bar" />
           <input type="submit" value="Save" />
        </form>';
    
    // foo.php
    if (isset($_SESSION['token'])) {
        if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) {
            // Double submit detected
        }
    }</code>
    Salin selepas log masuk

Dengan melaksanakan salah satu kaedah ini, anda boleh menghalang berbilang sisipan dengan berkesan apabila menyerahkan borang dalam PHP, memastikan integriti data dan mengelakkan pertindihan yang tidak disengajakan.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Pelbagai Sisipan Semasa Menghantar Borang dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!