アプリ版:「スタンプのみでお礼する」機能のリリースについて

CGIでメルマガ会員登録のページを作りました。
登録後にサンキューページに行く設定にしてますが、その後自動的に元いたページに戻るようにしたいと思ってます。この場合どのようなタグを入れればいいのでしょうか?

A 回答 (4件)

CGIで「元いたページ」情報を取得しておいて、


サンキューページを書き出した時に
「元いたページ」へ移動するタグを書くんですね。

<meta http-equiv="Refresh" content="10;URL=http://hoge.com/">
を使います。
10秒後に、http://hoge.comに移動します。
http://hoge.comの部分にもといたページのURLを書きましょう。
    • good
    • 0

あと。

このタグは<head>の中に書きます。
こんな感じです。

<html>
<head>
<meta http-equiv="Refresh" content="10;URL=​http://hoge.com/">
</head>
<body>
ご登録ありがとうございました!
10秒後に元の画面に戻ります。
</body>
</html>

この回答への補足

回答ありがとうございます。

元いたページはどのように指定すればいいのでしょうか?
指定したページへなら戻ることができるのですが、
元いたページは商品説明のページや、ご案内のページなど、
不特定のページでして、元のページへ戻る方法がわからないのです。

補足日時:2007/10/24 16:31
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

元いたページはどのように指定すればいいのでしょうか?
指定したページへなら戻ることができるのですが、
元いたページは商品説明のページや、ご案内のページなど、
不特定のページでして、元のページへ戻る方法がわからないのです。

お礼日時:2007/10/24 16:34

CGIへ行く時に、そのページのURLを、


<imput type=hidden name=back_url value="../doc/hoge.html">
にしてCGIに渡し、ANo.2さんがおっしゃっているところに渡せば良いと思います。
    • good
    • 0

そのようなことでしたらCGIの環境変数で $ENV{'HTTP_REFERER'} と書くとリンク元のURLがわかります。



サンキューページから自動的に戻るということは表示して指定秒数後に戻るということでしょうので、metaタグを使えばOKです。

ということは、CGIのサンキューページのHTMLを出力するところ、たとえば(文字コードがShift_JISという前提です)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>登録完了しました</title>
</head>
<body>登録ありがとうございました!</body>
</html>

とかあるでしょうけど、そこを

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Refresh" content="**;URL=​$ENV{'HTTP_REFERER'}">​
<title>登録完了しました</title>
</head>
<body>登録ありがとうございました!</body>
</html>

とすればいいです。**の部分には何秒後に移動するか書いて下さい(10秒だったら 10)

ただし、こうするといたずらとかで他サイトに登録フォームが設置されるとすると(ないだろうけど)そこに戻りますので相応しくないなら、登録処理のとこらへんに

unless ( $ENV{'HTTP_REFERER'} =~ /^*****/ )
{
print "Content-Type: text/html\n\n";
print <<"EOM";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>メルマガ登録・エラー</title>
</head>
<body>
<p>リンク元が不正です</p>
</body>
</html>
EOM
exit(0);
}

とCGIの中にいれて下さい。*****には登録フォームがあるところやあなたのサイトのindex.html等を抜いたTOPページなどの最短アドレスなど許可するリンク元を記入して下さい。ただし、 http://abcdefg.com/abc/ でしたら http:\/\/abcdefg.com\/abc\/ などと/の前に\を入れてやらないと内部サーバーエラーをおこしますから注意して下さい。

こうすることでフォームに手を加えなくてもCGI側がやってくれるので便利かと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!