- ベストアンサー
※ 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>を入れて移動させるようにしてみたんですけど、もっと正攻法があるんじゃないかな?と、疑問を感じました。 申し訳ありませんが、教えていただけると嬉しいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別にその方法でもいいと思いますが、その他には「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で飛ばすより、早くページが表示されます。
その他の回答 (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")'>
お礼
色々やり方があるんですね。 早速やってみます。 ありがとうございました♪