CGI WEB [ CGI配布 CGI解説 ホームページ作成支援 ]
ホーム|CGI配布|CGIランキング|CGIサポート|CGI解説|ワンタッチボード|ワンタッチメール|クイズ|自宅サーバ|サーバガイド|登録太郎|CGI WEBサーチ|CGI WEB窓口


back
リンク元の取得





リンク元の情報は環境変数$ENV{'HTTP_REFERER'}に格納されます。 普通はURLが格納されますが、お気に入りからの閲覧やブラウザのURL欄にアドレスを直接入力した場合は何も格納されません。

リンク元の情報を取得するCGIプログラムを作成した際に、このCGIプログラムを起動させる方法について考えてみます。 閲覧者がサイトのトップページ(index.html)を訪れた時に自動的に起動させれば良いわけですからindex.htmlの<body>タグ内に

<img src="./access-recorder.cgi" width="1" height="1" />

等と記述して<img>タグでCGIプログラムを起動させ、リンク元の情報を取得する方法が考えられますが、これではリンク元が常に「index.html」と取得されてしまいます。 CGIプログラムを起動させたのは<img>タグを記述したindex.htmlですから、これは当然の事です。 これを解消する方法として、ここではJAVA SCRIPTを使用してみます。

index.htmlの<body>タグ内に以下のように記述します。

<script type="text/javascript">
<!--
REF=document.referrer;
document.write("<img src='./access-recorder.cgi?ref="+REF+"' width='1' height='1' />");
//-->
</script>

JAVA SCRIPTではリンク元の情報をdocument.referrerで得る事が出来ます。 フレームで分割されたページから起動させる場合は、上記を「REF=parent.document.referrer;」と記述して下さい。

このようにしてJAVA SCRIPTでリンク元の情報を取得してCGIプログラムに渡せば期待したリンク元の情報を得る事が出来ます。 $ENV{'QUERY_STRING'}には「ref=リンク元URL」という形式で情報が格納されます。



□更新履歴
 2008.01.02 JAVA SCRIPTのソースを変更
 2007.04.22 全体的に内容を見直し




CGI WEB