除了我的previous question,這是我決定實施的;它可能不是純粹的P-R-G,但似乎沒問題。謹慎評論?這是否保護我免受頁面重新加載和後退按鈕?
form.php有一個動作;我們稱之爲validate.php。
validate.php是用戶永遠不會看到的;如果驗證所有$_GET
,並且如果有效將其寫入數據庫並生成確認頁面的HTML /如果無效,則生成錯誤頁面的HTML以解釋錯誤。
無論HTML生成獲取存儲在一個$_SESSION
變量,然後validate.php不叫invalid_input.php
submitted.php
一個header('Location: <as appropriate>);
最後一個頁面(如果用戶讀取URL)僅包括echo $_SESSION['form_html'];
在我看來,這是對付頁面重新加載和後退按鈕問題的技巧。
還是我試圖重新發明車輪?
這可能會起作用,但請確保您不依賴它來保護您的代碼免受惡意用戶的侵害。一般來說,您還需要後端級別的方法來防止重複提交。 – 2010-11-12 02:30:25
您應該使用POST請求,區別很重要。 – meagar 2010-11-12 03:25:18
+1謝謝,兩者(和,嗯,我使用POST,不GET - 咩,不知道爲什麼我寫的,他說不好意思) – Mawg 2010-11-12 04:01:59