」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP提交表單時如何防止多次插入?

PHP提交表單時如何防止多次插入?

發佈於2024-11-08
瀏覽:137

How to Prevent Multiple Inserts When Submitting Forms in PHP?

防止PHP 中表單提交時的多次插入

當使用者多次按下提交按鈕時,可能會在提交表單時發生多次插入。這可能會導致意外的數據重複。有幾種方法可以解決此問題:

  1. JavaScript 提交按鈕停用:

    此方法使用 JavaScript 停用提交按鈕後點擊。但是,它並不可靠,因為可以在不使用按鈕或停用 JavaScript 的情況下提交表單。

  2. PHP Session Timestamp:

    此方法在表單提交時將會話變數($_SESSION['posttimer']) 設定為目前時間戳。在表單處理期間,它會檢查變數是否存在並將其與當前時間戳進行比較。如果時間差小於預定義閾值(例如 2 秒),則偵測到重複提交。

  3. 唯一代幣包含:

    此方法涉及在每個表單中包含一個唯一的標記。會話變數保存表單中使用的令牌。提交表單後,會產生一個新令牌。如果提交的令牌與會話令牌不匹配,則視為重複提交。例:

    // form.php
    $_SESSION['token'] = md5(session_id() . time());
    
    echo '
    '; // foo.php if (isset($_SESSION['token'])) { if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) { // Double submit detected } }

透過實作其中一種方法,可以有效防止在 PHP 中提交表單時的多次插入,確保資料完整性並避免無意的重複。

版本聲明 本文轉載於:1729517478如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3