趣味プログラミング 重複POSTの回避 その1

はじめてのプログラミングと言えば、イメージ的にはお問い合わせフォームかと勝手に思い、早速作ってみることにしました。

入力をformで作り、submitでメールを送信させるPHPファイルに渡すという極シンプルなものでしたが、一つ問題が。

完了画面&メール送信PHPファイルにアクセスした段階で、ブラウザを更新すると更新しただけメールが送られてしまいます。

対応方法はいろんな方法があるようですが、最も簡単なPHPのheader関数で処理することにしました。

要はリダイレクトさせる処理なのですが、処理が正常にいったら、完了ページHTMLへリダイレクトさせるというもの。

以下のようにしてあげれば、勝手にリダイレクトしてくれます。
if ($mailsend) {
header(“Location:./complete.html”);
exit();
}

最後にexit()でエラーが発生した場合にPHPの処理を停止させるのがポイントのようです。

こうゆうとこインフラエンジニアとしてはちゃんと抑えていきたい所ですね。

とりあえず公開する予定の無いお問い合わせフォームはこの程度で良いとして、処理を実行するPHPファイルを攻撃されたら一緒やん?と思っているのですが、どうなんでしょうか。

その辺はセッションを持ったりするとかしないとかっていう話なんかと思うので、またいずれ。

今日はここまで。

おしまい。