
CGIから移動したページでのリンク元URLの取得について
CGIのHTML表示部を
print<<End_of_Data;
<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="5;URL=http;//example.com/index.html" />
<title>認証OK</title>
</head>
<body>会員ページに移動します</body>
</html>
End_of_Data
としています。
5秒後にリダイレクト先のexample.comに移動するようにしているのですが、
このリダイレクト先でリンク元を取得することができません。
リンク元URLを取得するにはどうしたらよろしでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
■識別用のクエリを付加する方法
あまり難しく考える必要はないですよ。index.htmlでアクセス元を調べていますよね。その時もし、
・referrerが空で
・かつ from=Success が付いていれば 「認証OK」のページから飛んできた、
と判定するわけです。
もちろんクエリは from=Success に限らず、?referrer=http://認証OKページURL でも何でもご自分で分かりやすいものでかまいません。
■専用ページに飛ばす方法
これも上と同じです。専用のindex2.htmlに来たものは、http://認証OKページURL から来たものと判定できますので 適宜処理をしてindex.htmlへ飛ばします。この時はRefreshで飛ばしても、すでに処理ずみですのでreffererが空でも構わないわけです。
適宜処理、というのはCookieを発行するなどで index.htmlでも判別できるようにする、ということです。
■ついでに
例えばこの認証OKページに <img src='http://example.com/img.php'> などとして、単なるgifやjpgではなく、別のサイトに置いたプログラムで画像を出力してやります。このときクッキーやセッションを発行すれば、example.comの方で判定でるわけです。
あるいは直接 この認証ページから
<script language="JavaScript" src="http://example.com/○○○.js"></script>
としてJavaScriptで処理してもよいでしょう。
このOKwaveさんでも様々なサイトのクッキーが発行されていますよ。一度クッキーの設定を IEなら[ダイアログを表示する]に設定するとよく分かります。
でも単純な方法が一番ですね。やっぱり。
上記の方法は回りくどくてあまり学習する価値ないかもです。
わかりやすいご回答本当にありがとうございます!
かなり学習になりました。
>■識別用のクエリを付加する方法
おっしゃられる通り難しく考えていました。
教えていただくまでRefererを空にするということを考えていませんでした。
しかしアドバイス通りにしましたら希望の動作をしてくれました!
>■専用ページに飛ばす方法
>この時はRefreshで飛ばしても、すでに処理ずみですのでreffererが空でも構わないわけです。
とてもわかりやすいご説明でした。
正直最初は理解に苦しみましたが、Refreshについて再度調べ、そしてクッキーについて少しでも理解を深めることでこちらもアドバイス通り上手く動作してくれました!
>■ついでに
こんな方法があるのですね。
全く知りませんでしたので、これまた勉強になりました!
こちらについては少し難しそうで学習する価値がないかもとのことですが、これを機に勉強してみようと思います。
本当にご丁寧かつ敏速にご回答いただきありがとうございました。
心よりお礼申し上げます!
No.2
- 回答日時:
JavaScriptで飛ばす手もありますね。
ほかをいじらず済むので楽かも。
以下body内に追加。
<form action='http://example.com/' name='jump'></form>
<script language="JavaScript">
<!--
function jump(){ document.jump.submit();}
window.onload=setTimeout("jump()", 5000 );
// -->
</script>
<noscript><a href='http://example.com/'>いますぐ移動する</a></noscript>
ご回答ありがとうございます。
完璧の一言です!!
今まで悩みに悩んでいたことが一瞬にしてできました!!!
先のご回答の方も学習のため試してみようと思います。
まずは取り急ぎお礼をさせていただきます。
本当にありがとうございました。
No.1
- 回答日時:
Refreshで飛ばすとリファラは空になってしまうので
■識別用のクエリを付加する
http;//example.com/index.html?from=Success
■ index2.htmlなど 専用ページに飛ばして判定後index.htmlにまた飛ばす
■あるいは、認証OKページで、example.comに置いた画像を出力してやることで サードパーティのCookieやsessionを発行する手もあります。
この回答への補足
すでに解決しておりますので、お時間があればアドバイスお願い致します。
>■識別用のクエリを付加する
>http;//example.com/index.html?from=Success
識別用のクエリを付加したのですがダメでした。
そこでご質問なのですが、
■ index2.htmlなど 専用ページに飛ばして判定後index.htmlにまた飛ばす
index2.htmlからindex.htmlに飛ばす方法はどういったものがいいのでしょうか?
いまいち理解しておらず、簡単で構いませんので何か学習のヒントになるようなアドバイスを頂けましたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームを再送信しますか?
-
エクセルで集計したい。
-
(フリーの)ツリー掲示版CGI、...
-
ChatGPT
-
/bin/awk '{print $5}'ってどう...
-
apacheでPerl CGIが作動せず、5...
-
入力フォーム(電話番号)
-
POSTメソッドの最大容量について
-
ChatGPTの性能は昔に比べて上が...
-
chatGPTみたいに画像生成出来る...
-
iDeCo
-
皆さんはGUCCIはハイブランドだ...
-
cgi-binのエラー?
-
Trees掲示板CGI(CGI-Resque氏...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについての質問...
-
popular among popularの違いを...
-
perlを難読化、暗号化させたい
-
cgiからsendmailを送信で文字化け
-
phpによるメッセージフォームか...
-
メール送信後のHTMLが文字化け...
-
キャッシュを読まない方法
-
WEBアプリケーションからフォル...
-
.htaccessでサーバエラー
-
画面の改行ピッチを変えたいの...
-
CGI.pmのstart_htmlで思い通り...
-
CGI実行できない。ソースが表示...
-
欧文 iso-8859-1 と 日本語 e...
-
文字コードが正常に変換されま...
-
content-dispositionによるファ...
-
ブラウザの「戻る」ボタンを押...
-
容量がある程度大きくて、type-...
-
壁紙を固定したい
-
SUN BBSの改造方法
-
wordの数式について 定積分を書...
おすすめ情報