CGIプログラムの初心者です。取り合えず作ってみようと思いまして、本を片手に「診断系の占い」のプログラムを書き始めました。生年月日を入力して性格を占う(?)、いわゆる「動物占い」とか「星座占い」のようなやつです。
入力した生年月日から数値を導き、その数値を元に数通り用意した結果のページ(HTML)へ移動させるようにしたいのですが、移動のさせ方がよくわかりません。CGIの中にHTML文書を書いて表示させるのではなくて、別に用意したHTMLのページへ移動させるにはどうしたらいいのでしょうか?
とりあえず
print "Content-type: text/html\n\n";
print <<EOF;
<html>
<head>
<meta HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=$kekka\">
<title>占いの結果です</title>
</head>
#以下略します
#$kekka ←この変数にアドレスを代入してます。
という感じで、<meta>を入れて移動させるようにしてみたんですけど、もっと正攻法があるんじゃないかな?と、疑問を感じました。
申し訳ありませんが、教えていただけると嬉しいです。
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で飛ばすより、早くページが表示されます。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlで作ったcgiがIE6で西ヨー...
-
malformed header from script....
-
パソコン → パャRン
-
アクセス人数制限CGIについて。
-
CLispのloop内の挙動について
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
Pythonでターミナルに文字を出...
-
どちのほうがすきですか?
-
パイソンのクラスのブログラム
-
パイソンのクラスについて
-
パイソンプログラミング
-
パイソンのクラスについて
-
セレクトボックスの中を一部隠...
-
vscode 文字化け
-
16進の10進変換について
-
[python] 文字列を変数名として...
-
Perlの日付の比較に関して
-
【プルダウンで選んでGOボタン...
-
phpでボタンを押したときに変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
malformed header from script....
-
結果を得て自動的にページ移動...
-
Perl CGIの中で # を使ってコメ...
-
my $html<<EOMの意味を教えてく...
-
テキストファイルの読み込み
-
どうしてもCookieとCGI・perlの...
-
パソコン → パャRン
-
Perlでの数字の12桁化
-
shift-jisからutf8に変換
-
サムネイルCGI
-
SSI にグローバル変数を渡すこ...
-
CGIから出力される文字が化けて...
-
cgiでのデータ受信
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
-
実行時エラー 3020の対策
おすすめ情報