Ethna 二重POST対応
登録処理で二重登録を防ぐ対応。
1.登録画面の前のページ
入力画面かもしくは確認画面か、ほとんどが確認画面だと思う。
<form method=post action=hoge.php>
<input type="hidden" name="action_hoge>
{uniqid} ← これ
:
:
</form>
{uniqid}に自動的に二重POST対応のhiddenタグが出力される。
2.登録画面後のactionで二重POSTチェック
function perform()
{
if (Ethna_Util::isDuplicatePost()) { ← ここ
// 二重POSTの場合
return 'action_hoge';
}
// 登録処理
:
:
return 'action_hogehoge';
}
Ethna_Util::isDuplicatePost()のreturnがtrueなら二重POSTである。
二重POSTなら登録処理せずにreturnする。
これを最初は、登録処理→エラー→リダイレクトでやってた。
Ethna使いこなせれば便利。使いこなすまでが大変ですが。。