Teknologi anti goncang PHP praktikal: elakkan penyerahan data berulang

PHPz
Lepaskan: 2023-10-12 12:40:02
asal
1147 orang telah melayarinya

实战 PHP 防抖技术:避免数据被重复提交

Teknologi anti goncang PHP praktikal: elakkan penyerahan data berulang

Dalam pembangunan web, kami sering menghadapi senario yang memerlukan pengguna menyerahkan data. Jika pengguna mengklik butang hantar beberapa kali dalam tempoh yang singkat, data mungkin dihantar berulang kali, menyebabkan masalah yang tidak perlu kepada sistem dan pengguna. Untuk menyelesaikan masalah ini, kita boleh menggunakan teknologi anti goncang PHP untuk mengelakkan data dihantar berulang kali. Artikel ini akan memberikan contoh kod khusus untuk membantu pembaca melaksanakan teknologi anti goncang PHP.

Prinsip teknologi anti goncang PHP adalah untuk menyimpan data yang diserahkan apabila mengklik butang hantar, dan kemudian dalam selang masa tertentu, jika pengguna mengklik butang itu sekali lagi, ia akan dinilai sebagai penyerahan berulang. Berikut ialah contoh kod khusus:

session_start();

function debounce($key, $time) {
    // 获取最后一次提交的时间
    $lastSubmit = isset($_SESSION[$key]) ? $_SESSION[$key] : 0;
    
    // 判断距离最后一次提交的时间是否大于指定的时间间隔
    if (time() - $lastSubmit < $time) {
        return true; // 重复提交
    } else {
        $_SESSION[$key] = time(); // 更新最后一次提交的时间
        return false; // 非重复提交
    }
}

// 获取提交的数据
$data = $_POST['data'];

// 判断是否为重复提交
if (debounce('submit_key', 3)) {
    echo '请勿重复提交数据!';
} else {
    // 处理提交的数据
    // ...

    echo '数据提交成功!';
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan $_SESSION untuk menjimatkan masa penyerahan terakhir. Fungsi debounce menerima dua parameter: $key digunakan untuk mengenal pasti tindakan penyerahan yang berbeza dan $time menentukan selang masa. Jika masa sejak penyerahan terakhir kurang daripada selang masa yang ditentukan, ia dinilai sebagai penyerahan berulang jika tidak, masa penyerahan terakhir dikemas kini. $_SESSION 来保存最后一次提交的时间。debounce 函数接受两个参数:$key 用于标识不同的提交动作,$time 指定时间间隔。如果距离最后一次提交的时间小于指定的时间间隔,则判断为重复提交;否则更新最后一次提交的时间。

在实际应用中,我们可以根据需要在提交表单的页面中调用 debounce 函数,传递不同的 $key$time

Dalam aplikasi sebenar, kami boleh memanggil fungsi debounce dalam halaman di mana borang diserahkan mengikut keperluan, menghantar $key dan $timeyang berbeza > Buat tetapan anti-goncang.

Selain menggunakan teknologi anti goncang PHP, kami juga boleh menggunakan teknologi hadapan untuk mengelakkan penyerahan data berulang. Sebagai contoh, lumpuhkan butang selepas mengklik butang hantar, dan kemudian dayakan butang sehingga penyerahan data selesai. Dengan cara ini, walaupun pengguna mengklik butang beberapa kali, ia tidak akan menyebabkan masalah penyerahan berulang.

Ringkasnya, teknologi anti goncang PHP ialah cara yang berkesan untuk mengelakkan penyerahan data berulang. Dengan merekodkan masa penyerahan terakhir semasa menyerahkan data dan menetapkan selang masa, pengguna boleh mengelakkan klik berulang pada tahap tertentu. Pada masa yang sama, kami juga boleh menggabungkan teknologi bahagian hadapan untuk melakukan beberapa interaksi pada antara muka untuk membantu pengguna mengelak daripada menghantar data berulang kali.

Saya harap contoh kod dalam artikel ini akan membantu pembaca dalam pembangunan sebenar! 🎜

Atas ialah kandungan terperinci Teknologi anti goncang PHP praktikal: elakkan penyerahan data berulang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
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!