• ベストアンサー

「警告:ページの有効期限切れ」となるのを回避するには?

ブラウザからファイルのアップロードを行うCGIを作ったのですが、 「警告:ページの有効期限切れ」と表示されます。 どうも<input type=file>でファイルを送信している場合に有効期限切れになるようです。 宜しくお願い致します。

  • CGI
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

おおさっぱ過ぎて回答が出来ません。 どのような場合に「有効期限切れ」と出るのかがわかりません。 CGIの該当部分のソースを開示できませんか?

ktgwtoor
質問者

補足

失礼しました、 HTMLファイルは <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>アップロード</TITLE> </HEAD> <BODY> <FORM method="POST" action="mitumori.cgi" enctype="multipart/form-data"> <input type="file" name="upfile" size="55"> <INPUT type="submit" value="送信する"> </FORM> </BODY> </HTML> CGIファイルは #!/usr/local/bin/perl require './cgi-lib.pl'; #フォームからのデータを受け取る &ReadParse; #ファイル名を指定する $fnme = 'sample'; #拡張子部分を取出す為にデータの間処理を続ける foreach $tmp (@in) { # 受信データの Content-type 部分から拡張子を探す if ($tmp =~ /(.*)Content-type:(.*)/i) { if ($2 =~ /image\/jpeg/i) { $ext = '.jpg'; } elsif ($2 =~ /image\/pjpeg/i) {$ext= '.jpg'; } elsif ($2 =~ /image\/gif/i) { $ext = '.gif'; } elsif ($2 =~ /image\/png/i) { $ext = '.png'; } else { $ext = 'NO'; } } # 受信データの filename= 部分から拡張子を探す elsif ($tmp =~ /(.*)filename=(.*)/i) { if ($2 =~ /\.jpg/i) { $ext = '.jpg'; } elsif ($2 =~ /\.gif/i) { $ext = '.gif'; } elsif ($2 =~ /\.png/i) { $ext = '.png'; } else { $ext = 'NO'; } } } #jpg gif png 以外ならエラーを出力する if (($ext eq 'NO')) { $mes = '許可されていないファイル形式です。'; } #許可されている拡張子なら書き込み処理をする else { #ファイル名と拡張子を結合する $fnme = $fnme . $ext; # 受信データを書き込む open OUT,">$fnme"; binmode OUT; print OUT $in{'upfile'}; close OUT; $mes = '書き込みが完了しました。'; } #完了メッセージ print <<"HTML"; Content-type: text/html <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY> $mes </BODY> </HTML> HTML exit; となっています、宜しくお願い致します。

その他の回答 (2)

回答No.3

キャッシュコントロールじゃないですか? Expiresを数時間後に設定してみてはいかがでしょうか。

ktgwtoor
質問者

お礼

お返事有難う御座います。 何とか解決しました

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

アップロードして、直ぐの表示で「有効期限切れ」などと出ることはあり得ないと思うのだけど? どのブラウザを使って、どこにその表示が出ますか? 履歴から再度アップロード完了ページを表示させようとすれば、出るのは当たり前とか思うのですけどね。でなければ、データ送信が再度実行されてしまうので。

ktgwtoor
質問者

お礼

お返事ありがとうございます、なんとか解決しました。

関連するQ&A

  • 「ページの有効期限切れ」について

    お世話になります。 同様の質問が多々あり根本的な解決に至っていませんでしたので、質問させて頂きます。 現在、ASP.NETでファイルをアップロードする画面を作成しています。 アップロード後に結果画面に遷移しています。 現象としては・・・ 結果画面からブラウザの[戻る]ボタンまたはjavascriptのhistory.back()を使用すると「ページの有効期限切れ 」と表示されてしまいます。 原因としては・・・ IEでは、フォームにファイルフィールド(<input type="file">)を使用している場合、次のページがキャッシュされないため、「戻る」ボタンを押したときに「ページの有効期限切れ 」になってしまう。 ※IEの仕様 対策として・・・ 過去の質問などから以下の2つを考えています。 1.IEを使用しない。または「ページの有効期限切れ 」でブラウザの[更新]ボタンを押下する。 2.ブラウザの[戻る]ボタンを使わせず、history.back()を使用していたボタンを直接、前画面に遷移するボタンに変更する。 そこで質問なのですが、上記の2つ以外での対応策はあるのでしょうか?

  • “警告:ページの有効期限切れ”と“表示されません”の違い

    ここOKWebやGoogleでも検索しましたがわからなかったので質問させてください。 下記のような流れで動くCGIを組んでおります。 先頭ページ(CGI-1)    ↓    ↓POSTにてデータ送受    ↓ 入力フォーム(CGI-2)    ↓    ↓POSTにてデータ送受    ↓ 確認フォーム(CGI-3) 上記の流れは正常に動作しているのですが、 確認フォーム(CGI-3)からブラウザの戻るボタンにて戻ったとき、 自分の確認した端末では“警告:ページの有効期限切れ”と表示されるのですが 他のある端末だと“表示されません”になってしまいます。 本来、“警告:ページの有効期限切れ”と表示されるのが正しいと思っているんですが、 なぜ“表示されません”になってしまうんでしょうか?

    • 締切済み
    • CGI
  • 警告 : ページの有効期限切れ

    最近になってよく「警告 : ページの有効期限切れ 」と表示されるようになりました。何かこちらに原因はあるのでしょうか? よろしく御願いします。

  • 警告 : ページの有効期限切れページを表示しないには??

    インターネットの画面を進んでいく際、戻るボタンを押すと、 『警告 : ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。 情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。』 と言うページが表示されます。 このページを表示させない設定ってありますか? 毎回なので困っています。 もし、あったら教えてください。 よろしくお願いします。

  • 警告 : ページの有効期限切れを表示させないように設定する

    **********警告 : ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。 情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。 ******************** 検索したい言葉を入力して検索結果がでます。それを戻そうとして「戻る」ボタンを押すと上記の警告メッセージが流れます。 複数でPCを利用している場合は、警告メッセージも必要ですが、個人で使用している場合は、誰も見られないわけですから、このメッセージの必要性もなく、出来ればこのメッセージが開かないで「戻る」に設定できればと思っています。 XPですが、私の希望をかなえることは出来るでしょうか。 ご回答よろしくお願い致します。

  • 警告:ページの有効期限切れ

    最近XPに換えました。インターネットで検索していてホームページ等を見て、上記のような警告:ページの有効期限切れと表示され、ページのバック(前のページへ戻る)ができません。98SEでは問題なかったんですが、不便で仕方ありません。解除するなど、その方法はありませんか?よろしくお願いいたします。

  • [警告 : ページの有効期限切れ]

    Perlで日記のスクリプトを書いています。 通常にアクセスしたページから、<form>タグの、POST方式で管理人のパスワードと管理人モードに行くよという情報を送って、まず管理人画面に入ります。 GET方式に直すと diary.cgi?mode=admin&pass=abcd といった感じです。 さらに管理人画面にて、新規投稿や既存の記事の削除および編集ができるようになっていまして、その記事編集をする場合は、管理人画面にてさらにPOST方式を使って編集画面へとうつります。ここでのPOST送信は分けあってJavascriptを使っています。 編集画面に移動するボタンは、削除用のフォームの中にあり、しかしフォームを入れ子構造にすることはできなく、かといってリンク等で(記事noが69の記事の場合) <a href="diary.cgi?no=69&mode=edit&pass=abcd">この記事を編集</a> という風にGet送信すると、履歴にパスワードなどがのったURLが残ってしまうから、Javascriptを使わざるを得なかったわけです。 また、編集し終わると、もとの管理人の画面に戻ります。 そこで困ったことに、編集した後などにブラウザの「戻る」や、「進む」繰り返し押したりすると、 ************************************ 警告 : ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。 ************************************* という風に表示されてしまいます。 これは致命的です。 しかし何がいけないのかさっぱり見当がつきません。 ただし、編集画面へ行くときにリンク等でGET方式で送信するとこの症状が出ません。 なにがいけないのでしょうか。 限られた文字数と、サンプルソースは長すぎて載せられないため、状況をうまく説明できていませんが、不明な点があればご指摘下さい。

    • ベストアンサー
    • CGI
  • 警告:ページの有効期限切れについて

    この「教えて!goo」のコーナーを見ていてWevの戻るをクリックすたびに 「警告:ページの有効期限切れ」が出てきて「更新」をクリックしなければ 元のページに戻れません。どうすれば出てこないように出来ますか。初心者なので困っています。教えてください。

  • ページの有効期限切れ といわれます

    bottonを押した時に、Windowのclose()で元のページを閉じる 処理を実行していますが、 警告 : ページの有効期限切れ 要求したページは、フォームで送信 された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。 情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。 というメッセージが表示されます。 これを確実に防ぐにはどうすれば、いいでしょうか。 history(-5) も実行してみましたが、同じ結果でした。

  • PHPで、IE の「警告 : ページの有効期限切れ」を防ぐ方法

    PHPで開発しています。 IEで、ブラウザで戻るボタンを押した際に、「警告 : ページの有効期限切れ」が出ることがあるのですが、これを防ぐ方法はありますでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう