• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:結果を得て自動的にページ移動を行うには?)

結果を得て自動的にページ移動を行うには?

このQ&Aのポイント
  • CGIプログラムの初心者です。取り合えず作ってみようと思いまして、本を片手に「診断系の占い」のプログラムを書き始めました。生年月日を入力して性格を占う(?)、いわゆる「動物占い」とか「星座占い」のようなやつです。
  • 入力した生年月日から数値を導き、その数値を元に数通り用意した結果のページ(HTML)へ移動させるようにしたいのですが、移動のさせ方がよくわかりません。CGIの中にHTML文書を書いて表示させるのではなくて、別に用意したHTMLのページへ移動させるにはどうしたらいいのでしょうか?
  • とりあえず print "Content-type: text/html "; print <<EOF; <html> <head> <meta HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=$kekka\"> <title>占いの結果です</title> </head> #以下略します #$kekka ←この変数にアドレスを代入してます。 という感じで、<meta>を入れて移動させるようにしてみたんですけど、もっと正攻法があるんじゃないかな?と、疑問を感じました。 申し訳ありませんが、教えていただけると嬉しいです。

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

別にその方法でもいいと思いますが、その他には「Locationヘッダでリダイレクトさせる」方法や「結果ページのHTMLを読み込んで表示する」方法などが考えられます。 Location の場合、  print "Location: $kekka\n\n"; とだけ出力すればOKです。 META の Refresh による方法と、ほぼ同じ結果になります。 ※$kekka は、念のため絶対URLの方がよいです。 HTMLを読み込んで表示するなら、  print "Content-Type: text/html\n\n";  if (open(FH, "< $file")) {  # $fileには、$kekkaに相当するHTMLのファイルパスを指定    print <FH>;    close FH;  }  else { print "Error: $!" } という感じ。 こっちの方がMETAやLocationで飛ばすより、早くページが表示されます。

Tenshi_7
質問者

お礼

色々やり方があるんですね。 早速やってみます。 ありがとうございました♪

その他の回答 (2)

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.3

ごめんなさい、回答No2は勘違いでした。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

JavaScriptの  "document.URL" を使うとできます。 URLは大文字であることに注意。 使用例: <script> function jump(url){document.URL=url} </script> <input type=button value=" 1 " onclick='jump("1.html")'> <input type=button value=" 2 " onclick='jump("2.html")'>

関連するQ&A