首頁  >  文章  >  後端開發  >  如何防止PHP頁面中的表單重新提交?

如何防止PHP頁面中的表單重新提交?

Patricia Arquette
Patricia Arquette原創
2024-11-03 11:11:29772瀏覽

How to Prevent Form Resubmission in PHP Pages?

避免PHP 頁面中表單重新提交

刷新包含插入功能的PHP 頁面時,可能會遇到表單重新提交的問題,可能會導致插入重複資料。為了防止這種情況,請考慮使用 Post-Redirect-Get (PRG) 模式。

PRG 模式

PRG 模式涉及:

  1. 接受 POST 請求:
  2. 接受 POST 請求:接收提交的表單資料。
  3. 處理資料:驗證、插入或執行任何必要的操作。
  4. 發出重新導向回應: 將使用者重新導向至新 URL。
  5. 接受 GET 請求: 使用者點擊刷新的連結並發出新請求。
發出 200 個回應:

顯示包含任何必要資料的頁面。

範例

  • 例如,假設您正在建立一個頁面,使用者可以在其中加入註解。您可以如下實作 PRG 模式,而不是在同一頁中使用插入功能:
  • 第 1 頁 (add_note.php):顯示表單。
  • 第 2 頁 (process_note.php):接受 POST 請求並處理筆記提交。
第 3 頁 (view_notes.php)

:接受 GET要求並顯示更新的註解。

處理表單數據顯示

<code class="php">header("Location: view_notes.php?note_id=$new_note_id");</code>

如果需要在處理後顯示提交表單中的數據,可以包含一個唯一的重定向URL 的查詢字串中的標識符。例如,來自 process_note.php 的重定向回應可能是:

在 view_notes.php 中,您可以使用查詢字串中的 note_id 來擷取並顯示新插入的註解。

以上是如何防止PHP頁面中的表單重新提交?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn