
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で質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cgiで動画ファイルをアップロー...
-
popular among popularの違いを...
-
content-dispositionによるファ...
-
CGI.pmのstart_htmlで思い通り...
-
CGI生成ページをNetscapeで表示...
-
CGIから移動したページでのリン...
-
キャッシュを読まない方法
-
CGI管理ページなどより背景画像...
-
こんにちは。
-
プログラミングについての質問...
-
CGIが書き出すヘッダ
-
CGIカレンダーの改造
-
SUN BBSの改造方法
-
フリー素材(屋内サイン)のサ...
-
wordの数式について 定積分を書...
-
携帯(au)の「ブラウザ履歴」を...
-
掲示板(kentさんの所のsunbbs...
-
オンマウスでの文字変更
-
OBJECTタグで、PARAMを使用する...
-
ファイル自動収集のコマンドの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBアプリケーションからフォル...
-
cgiで動画ファイルをアップロー...
-
UTF-8で文字化けしないようにす...
-
容量がある程度大きくて、type-...
-
perlを難読化、暗号化させたい
-
アップしたホームページが文字...
-
プログラミングについての質問...
-
Locationの文字化け
-
壁紙を固定したい
-
FireFox、Operaで出力するとhtm...
-
[携帯サイト]CGIの対応キャリア...
-
CGI実行できない。ソースが表示...
-
CGI.pmのstart_htmlで思い通り...
-
ショッピングカートのクッキー...
-
フォルダの変数について
-
i-modeやJ-sky,ez-webで共通し...
-
cgiからsendmailを送信で文字化け
-
.htaccessでサーバエラー
-
PHPのlocationについて
-
SUN BBSの改造方法
おすすめ情報