西小倉事典
mindia › 西小倉事典 › 単語

二重投稿防止

西小倉パンデイロ · 2009-11-30 更新 · 履歴(2)
第 2 版(2009-12-01 04:27:30 · 西小倉パンデイロ)を表示しています。 最新版に戻る

cookieを使う

DBを参照する

セッションを使う

二重投稿を防止しつつ直接アクセスも防ぐPHPコードサンプル

//$taskId = session_id();
7: $taskId = mt_rand();
8: $_SESSION['taskId'] = $taskId;
9: $hiddenValue = md5($taskId);
10: //print($taskId.'
');//確認用
11: print('<form action="one_time_submit.php" method="post">');
12: print('<input type="hidden" value="' . $hiddenValue . '" name="taskId" />');
13: print('<input type="submit" value="submit" name="submit" />');
14: print('</form>');
15:
16: <?php
17: //one_time_submit.phpに記述
18: session_start();
19: $taskId = $_SESSION['taskId'];
20: //print($taskId.'
');//確認用
21: unset($_SESSION['taskId']);
22: if (md5($taskId) == $_POST['taskId']) {
23: //正常にsubmitされた時の処理
24: print('きちんと前の画面からsubmitされています。');
25: } else {
26: //二重投稿された場合や、直接アクセスされた場合の処理
27: print('フォームを通してアクセスして下さい。');
28: }

http://code.nanigac.com/source/view/178

履歴

タグ

他の人の「二重投稿防止」