PEAK XOOPS - リダイレクト or die() :-) in englishin japanese

Archive | RSS |
PHP
PHP : リダイレクト or die() :-)
Poster : GIJOE on 2006-05-18 18:14:07 (10174 reads)

in englishin japanese
XOOPSに限らず、Webアプリケーションのエラー処理で、リダイレクトを用いるケースが多く見られますが、これは本当に正しいでしょうか?

もちろん、POSTデータを処理した後のリダイレクトには意味があります。ブラウザの「戻る」ボタンとフレンドリーになりますし、正常な処理ですから、リダイレクト画面(header('Location:...')ではなくmetaでリフレッシュするタイプ)のメッセージが読めなくても、さほど問題になりません。

しかし、エラー処理において、リダイレクトするのはどうでしょうか?

そのエラーが、通常の操作において頻繁に起きうるものであればともかく、通常あり得ない値が渡されたケースなどにおいては、die()でさっさと終了すべきでしょう。これは、製作者にとって楽、というだけでなく、善意の利用者にとってもメリットがあります。なんらかの理由でエラーになったとしても、エラーメッセージをじっくり読めますし、どこだか判らないページに飛ばされる実行時間がなくなるだけでもありがたいでしょう。

また、エラー処理のリダイレクトによる無限ループもありえます。通常のブラウザであれば正常なリダイレクトになっているのに、一部の翻訳サイトを経由した場合にだけ、無限ループになる、という現象も見つかっています。(もちろんこれは、その翻訳サイトの問題ではありますが、それらによって食いつぶされてしまう負荷は無視できないでしょう)

もちろん、ブラウザで戻ることを禁止するタイプのガチガチなアプリケーションもあるでしょうから、一概には言えませんが、基本的にはリダイレクトよりdie()を先に検討すべきだと私は考えます。

Printer friendly page Send this story to a friend

Comments list

gigamaster  Posted on 2006/5/19 22:56
I'll test it locally.

Thanks
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!