可以在form提交成功以後用header來重定向一下,
這樣用戶不管怎樣重新整理頁面也不會造成重複提交form了,
用js或html meta的方式一般情況下會有緩存,
可能會造成form重複提交,用header就不會哩。
$login = $_REQUEST['login'];
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$op = $_REQUEST['op'];
大家注意,关键在这儿,header的时候一定要在内容输出之前操作,否则会报错的!
if ($login) {
if ($username == 'test' && $password == 'test') {
header("Location: login.php?op=succeed");
} else {
header("Location: login.php?op=failed");
}
}
switch ($op) {
case 'succeed':
echo 'Logged succeed!';
break;
case 'failed':
echo 'Logged failed!';
break;
}
?>
參考文獻: http://q.sohu.com/forum/5/topic/3479759
你還是用 session 做 flag 比較直接,在還沒有重導向之前多按幾次 F5 ,這個防禦就失效了!
回覆刪除你是說!!token嗎?~我最近也在查這個
回覆刪除是 flag(旗標)!
回覆刪除尤其是在做 Insert 的時候最怕碰要重複送出!
用一個 flag 的變數去記錄記錄是不是已經執行過了!
當然 token 也是有一樣的效果!
在 daybreak 裡的元件有幾個是獨立運作的
回覆刪除你可以個別拿來使用,有興趣你也可以自己改寫
Acl.php
Cache.php
Db.php
Debug.php
Filter.php
I18N.php
Registry.php
嗯嗯~這幾天想把公司電腦也環境架起來!!
回覆刪除~就想開始練習寫會員的部份看看