[PHP-users 9221] Re: ファイルアップロードの後の有効期限切れ
Kojiro Imamura
php-users@php.gr.jp
Wed, 7 Aug 2002 19:40:30 +0900
こんばんは。今村です。
自己レスをさせて頂きます。
> 1.PHPで、HTMLの<input type="file">を使用し、画像ファイルを
> サーバへアップロードする。
> 2.画像ファイルを、受け取り、確認のために、そのアップロードされた
> 画像をブラウザに表示する。
> 3.2の確認画面で、OKボタンをクリックすると、画像ファイル名をDBへ
> 登録し、画像ファイル自体は、アップロードしたフォルダとは別の
> フォルダへコピーし、完了画面を表示する。
> 4.もし、DBへの登録に失敗したり、画像ファイルのコピーに失敗した
> 場合、エラー画面を表示し確認画面へ戻る。このエラー画面には、
> 戻るボタンを設けてあるが、JavaScriptのhistory.back()を使用している。
> 5.このエラー画面で、戻るボタンをクリックすると、有効期限切れ
> が発生。また、完了画面で、ブラウザの戻るボタンをクリック
> しても、有効期限切れが発生。
> 6.エラー画面のhistory.back()を単なるリンクにし、必要な値を
> Submitするというやり方でも良いのだが、ユーザーがブラウザの
> 戻るボタンを使用しないとは、言い切れないので、リンクをするという
> やり方でなく、history.back()の方で、対処したい。
ファイルアップロード後に有効期限切れが出てしまう。という現象は、
ブラウザの仕様ということで、その現象自体を回避することは、現在、
私が作成しているプログラムでは、難しいため、有効期限切れを
起こさないようにするというのは諦め、妥協策を取る事にしました。
その妥協策とは、元々私の作っているプログラムは、<input type="file">
がある「入力画面」、その入力画面からSubmitで開かれる「確認画面」、
DB等に登録に行く「完了画面」の3つから成り立っており、完了画面で
エラーが発生した場合、エラー画面を表示し、history.back()で確認画面
へ戻る。という物でした。
それで、何が問題になってくるかというと、エラー画面でhistory.back()をし、
確認画面へ戻ると有効期限切れが出てしまうということで、よくよく考えて
みると、別に、確認画面へ戻る必要は無く、入力画面まで戻ってしまえばよい。
と言うことに気が付きました。
なので、エラー画面の戻るボタンをhistory.back()から、history.go(-2)に
変更、入力画面へ戻るようにし、有効期限切れを表示しないようにしました。
それでも、ブラウザの戻るボタンを使用されると、有効期限切れが出て
しまいますが、これは、「そういう仕様です」と言い張ることにしました。
というわけで、一応解決しました。
ご教授くださいました皆様、どうも有難うございました。
########################################
今村 幸治郎
E-Mail:imamura@buddy.co.jp
########################################