前の記事 ≪:フリーのカッコいい25のフォント
次の記事 ≫:Javascriptのチェス

POST後はリダイレクトした方が吉

2006年02月23日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法
Sitening Blog Blog Archive Redirect After Form Processing

After processing an html form, it is often a good idea to redirect the user to a new url, rather than just presenting the results. Consider this php example:

掲示板などで、フォームに対して送信した後は、そのまま画面のHTMLを返すのではなく、書き込み処理等を行った後、Location等で別の位置にリダイレクトするのが吉、という記事。
ごく当たり前のことなんですが、慣れでついそのまま画面HTMLを返していた人も多いのではないでしょうか?(私がそうです^^;)

別の位置にリダイレクトすることで、書き込み画面のリロードによる2重投稿を防いだり、リロード時に「もう一度送信しますか?」というダイアログを出すのを防いで使い勝手を向上させることが出来ますね。正直、そのままHTMLを返す方式ではいいことがなさそうです。

アンケートフォームなんかであれば次のようにリダイレクトして、Thankyou画面を出すのが適切ですね。

<?php
if ($_POST["name"]) {
  
header("Location: /thanks.html");
  exit;
}
?>

そういうわけで、今後はこの方式を常識として採用していこうと思っています。
(対応していないブラウザや、状況によってはこの方式にしない方がよいこともあります)

(追記)尚、Location先に関しては絶対パスの方がRFC的に正しいようです。ご指摘いただいた方ありがとうございます

関連の記事検索:Web制作, PHP, チュートリアル
スポンサード リンク

By.KJ : 2006年02月23日 08:59 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)