• ベストアンサー

ページの表示と同時にダウンロードさせたい

いつもお世話になっています。 入力フォームから必要な項目を入力して、送信するとPHPでいろいろ処理して、その後ありがとうページを表示させると同時にファイルのダウンロードをさせたいと考えています。 処理をするPHPでありがとうページを書き出ししても、別なページに飛ばしてもいいのですが、header(Location:~)ではページが表示できず、別なページを作ってHTML表示後にheader(Location:~)だとファイルのダウンロードができずに困っています。 header(Location:~)を使わずにページの表示と同時にファイルのダウンロードが始まるようにできないでしょうか。

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

  • ベストアンサー
  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

<meta HTTP-EQUIV="Refresh" CONTENT="0;URL=ダウンロードさせるファイルのURL"> 「ありがとう」と書いてあるページのmetaに 「ダウンロードさせるファイルのURL」を書くと出来ますよ。

umioyo
質問者

お礼

ありがとうございました。 やっぱりmeta以外方法はないんでしょうかね。。。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mi-si
  • ベストアンサー率35% (200/567)
回答No.1

metaタグを使う方法が多いです。HTML本体の<HEAD></HAED>の間に以下の文を差し込みます。 <meta HTTP-EQUIV="Refresh" CONTENT="0;URL="http://~">

umioyo
質問者

お礼

ご回答どうもありがとうございます。 しかしmetaで飛ばすとありがとうページが表示されなくなってしまうと思うのですが。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォーム処理から戻ったページの表示位置について

    こんにちは よろしくお願いいたします。 商品一覧を管理するページを作っています。 たとえば、商品一覧を表示して、価格とか商品説明を変更できる管理者用のページ「admin.php」があったとします。 このページで、ある商品の説明文を編集して「送信」ボタンを押すと、内容が「revision.php」に送られ、そこでデータベースファイル(txtファイルで作りました)の内容を書き換えてから、admin.phpに戻る、という処理を行っています。 revision.php内で処理が完了すると、「header("Location:admin.php")」という処理でadmin.phpに戻るようにしています。 そこで、ひとつ希望がありまして。 admin.phpに戻ると、どうしてもページ最上部に戻されてしまいます。 続けて、どんどん別の商品も編集したいなぁと思っている場合、またスクロールして該当の場所を探すのが大変です。 ですので、revision.phpからadmin.phpに戻る場合に、ページ最上部ではなく、送信前の表示位置のところへ戻すことは可能でしょうか。 ちょうどブラウザで、ある程度スクロールしたページから別のページへリンク移動して、ブラウザの「戻る」ボタンで戻った時のイメージに近いです。 お分かりになる方、いらっしゃいましたら、アドバイスいただけると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 処理後のページ内移動について

    色々と見てみたのですが、どうしても探したい情報が見つからず 解決できません。住みませんが助けてください。 PHPでメールフォームを作成しています。 はじめのページでファーム入力し、その後サブミットボタンをクリックすると、 otoiawase.phpに情報を渡し入力チェックをします。 入力チェックでエラーがあれば、リストでエラーを表示するのですが、 その際に、エラーチェック後ページ内の途中の位置にジャンプしたいのです。 というのもフォームの入力位置がページの下部分にあるので、 フォーム入力部分が丁度スクロールなしで見れる部分に表示させたいのです。 要は<a href="#bbb">, <name="bbb">のような... 別のページに飛ぶ際はheader("Location: confirm.php#bbb");で 良かったのですが、同一ページ内でそういった処理をするには どうすれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • header関数でページ移動する場合の変数について

    MySQLとPHPを使ったWebシステムの勉強をしているPHP初心者です。 現在ログイン認証ページを作っており、 (1)IDとパスワードをフォームで入力     ↓ (2)action='$PHP_SELF'で同じページにリダイレクト     ↓ (3)認証を確認し次第header関数で自動的に別のページに飛ばす     ↓ (4)IDに応じてページの内容を変える。 という風にしています。(3)の部分のソースコードは(かなり省いてはいますが)以下の通りです。 if (session_is_registered($ADMSESS)) { header("location: admnew.php"); } ここで、(3)までのページで使っていた変数を(4)のページでも受け取り、そのまま使いたいと思っているのですが、どうしたらいいでしょうか。今は(4)を開いたとき、どのようなIDでログインしても同じページが表示されています。 分かりにくいですね、、HTMLベースのフォームだとaction=POSTを用いて飛ばした変数を $変数 = $_POST['変数'];として受け取ることが出来ますが、PHPで同じことをやろうとするとどうなるのか、ということです。 分かる方いましたら、どうか御回答宜しくお願いします。

    • ベストアンサー
    • PHP
  • インラインフレーム内のセッション

    通常のHTMLファイルのインラインフレーム内に、別サーバーからPHPファイルを取得して表示しています。 そのPHP自体は簡単なアンケート(フォーム→入力内容確認→送信)なんですが、このフォーム→入力内容確認の遷移がうまくいきません。 セッションでフォーム内の値と送信ボタンの値(sub)を保持し、確認のファイルに if(@$_SESSION['sub']!=TRUE){ header("location:form.php"); exit(); }else{ (以下略) } と記述することで、もしURL直打ちの場合はフォームの入力画面に飛ばされるようにしてあるのですが、インラインフレームの中でフォームに入力して送信ボタンを押すと、強制的に同じ画面に戻ってしまうのです。 直接ブラウザで該当のPHPを見たときは、何の問題もなく動くので、プログラム自体にエラーがあるわけではないと思うのですが・・・。 どうも確認ファイルのif(@$_SESSION['sub']!=TRUE)で、セッションがうまく保持されていないためにheaderで飛ばされてしまっているらしいのですが、インラインフレーム内でセッションを利用するときはどうすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでHTMLのページ飛ばす方法とコマンドラインの実行

    プログラム上からメール送信がしたくて、PHPの手習い中超初心者ですが、 (1)PHPから強制的に特定のHTMLファイルの表示に行く方法が分かりません。header(Location;  )で飛んでから処理(メールの送信)をしても良いかなとも思いますますが、他に良い方法あれば教えてください。 (2)PHPのMail関数でMailがエラーなく終わるのですが、メールが届きません。ArGoSoftのMailServerでOutlookExpressからは、自由に送信着信可能です。コマンドラインから方法でEXEC()にパラメータを渡せるならその方法でやろうかとも思っていますが、何か良い方法はあるのでしょうか?

    • 締切済み
    • PHP
  • 動的HTML表示に関するテクニック

    環境はPHP5xです。 以下のようにすれば、"test"が5個表示されますが。 これは、プリント毎に書き出されたHTMLが追加されるためだと思いますが、 書き出す度に、前回書き出しのHTMLをクリアして 常に1つだけ表示させる方法はありませんでしょうか? <?php $i=0; while($i < 5){ print "<p>test</p>"; $i++; } ?> 用途は、 フォーム入力部品のVALUE=""を一度、どうページのPHPへ送信させたあと その値を元に分岐した内容をフォームに値を書き込むのですが フォームが複数表示されてしまいます。 一番下のフォームには意図した値は書き込まれますが、 最後のフォームのみ表示させたいわけです。 このような処理を、同一ページで行うことは不可能でしょうか?

    • ベストアンサー
    • PHP
  • headerでエラー

    お世話になります。 行き詰まってしまいどうにもならないので質問させて下さい。 フォームのテキストボックスが未入力状態で「更新」ボタンを押したとき 更新処理を行わずエラーメッセージの表示等を行うだけで同一画面に留まりたいプログラム「input.php」があります。 <?php require_once("mysql.php"); GET処理 POST処理(※入力チェック OK:更新処理、NG:header使用し別モードで再読込) ?> <html> <head> (中略) フォーム(action="<?=$_SERVER["PHP_SELF"]?>") </html> エラーチェックを<html>より前の部分で行い、不正なら「input.php?err=1」という形でheaderを使った再読込で項目の上にエラーメッセージを表示させたいのですが、うまくいきません。 (※やり方に関してどうしてもこうする必要があるのでご理解下さい) 試しに以下のように書き換えて実行するとこのように表示されます。 「..xxx/mysql.php の 1 行目でヘッダがすでに送信されています。リダイレクトできません。 」 if (!headers_sent($filename, $linenum)) { header("Location: http://$host/input.php?err=1"); exit; } else { echo "$filename の $linenum 行目でヘッダがすでに送信されています。"; exit; } メッセージにある「mysql.php」の1行目は「<?php」だけなので何がいけないのか見当がつきません。 「header」の使用については  ・すべての出力の前でなければならない  ・読み込みファイルや空白行などにも注意 ということまでは知っているので注意しているつもりなのですが... 何かお気づきの点でもあればご指摘下さい。 よろしくお願いします。

    • 締切済み
    • PHP
  • 2つのフォームから同時に送信するには

    実は2つのフォームから同時にpostする方法が分からず困っています。一つのフォーム1はデータベースからデータを取り出して、ループをかけてチェックボックスのvalueに入れて表示しています。フォーム2では別内容をテキストボックスに入れます。そして、この2つを同時に別PHPファイルに送信したいのですが、片方しか送信されません。一つのボタンをクリックすると、2つのフォーム内容がpostされるようにするにはどうすればよいのでしょうか。どなたかご教授、アドバイス宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 送信フォームから受け取った情報を反映させたい

    PHP4を使用しています。 送信フォーム.html→確認ページ.php であれば、受け取った情報を簡単に変数に取り込んでくれます。 しかし、送信フォームのチェックを行うために、 制御.phpというものをつくります。 送信フォーム.html→制御.phpという状態に して(form actionの行き先)、 制御.phpで確認ページ.phpを読み込んで表示させるというものをつくろうとしています。 これをすると、 確認ページ.phpの読み込みはきっちり行われます。しかし、送信フォーム.htmlで入力してもらった内容が確認ページ.phpに取り込まれません。 hiddenなどを使用してもうまくいきません perlではできたんですが・・・やっぱりphp では難しいものなんでしょうか?

    • ベストアンサー
    • PHP
  • PHPにてHTMLページ表示とは別プロセスで処理を実行したいのですが

    PHPにてHTMLページ表示とは別プロセスで処理を実行したいのですが PHPにて動的にページ生成する場合には内部の処理が全て完了して全てを読み込まなくては ページが表示されないと思うのですが、一旦ページを表示させて処理を継続して実行する ことはできないでしょうか? その処理はページの表示には関係ないのでajaxのようなページを表示後に新たに表示させると いった事は必要ありません、単にページ表示後にファイルを読み込んでDBに格納する処理を 行いたいのですが方法はないでしょうか?

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • パソコンの動作が遅くなり、変な音がして画面がフリーズすることがあります。
  • 原因としては、古いパソコンの性能の低下や不要なファイルの蓄積、ウイルスやマルウェアの感染などが考えられます。
  • 対策としては、パソコンのメンテナンス、不要なファイルの削除、ウイルス対策ソフトの導入などがあります。
回答を見る

専門家に質問してみよう