フォームから送られたデータの、F5等での多重投稿を防ぐ方法として、よくトークンを発行であったりリダイレクトさせたりであったりといった方法が紹介されていますが、単にセッションの破棄だけでは不十分なのでしょうか?
下記のとおり、データベースへの書き込みを行なったあとにセッションの破棄で対応しようかと思うのですが・・・。
PHP
1if (isset($_POST['send'])) { 2 $name = $_SESSION['name']; 3 $kana = $_SESSION['kana']; 4 $tel = $_SESSION['tel']; 5 $email = $_SESSION['email']; 6 $body = $_SESSION['body']; 7 8 $sql = 'INSERT INTO contacts (name, kana, tel, email, body) VALUES (:name, :kana, :tel, :email, :body)'; 9 $stmt = $dbh->prepare($sql); 10 $params = array(':name' => $name, ':kana' => $kana, ':tel' => $tel, ':email' => $email, ':body' => $body); 11 $stmt->execute($params); 12 13 $_SESSION = array(); 14 session_destroy(); 15}
回答2件
あなたの回答
tips
プレビュー