インフォメーションBBS

[使い方] [タイトルのみ] [関連発言] [最新20発言] [過去ログ一覧]
0866 うはく [RE] 2000/01/12 02:42 [修正]
RE:アクセスログ(CGI)について
#0864(さくら氏)の書き込みを引用します:
>はじめまして。
>アクセスログ3(access3.cgi)を使わせていただきました。
>・・・が、HTTP_REFERERが、すべてダミー画像を貼ったページになってしまい
>うまく取得できません・・・。
>直し方を教えてください。 お願いします! m(._.)m ペコッ

全くもって水原麗名さまの受け売りですが
前に「書き換えたところは他の人に聞いて」とあったので
他の人代表(^_^)うはくが書きます。

まずaccess3.htmの
<img src="access3.cgi">
を下のように書き換えます。
<script Language="javascript">
<!--;
document.write('<img src="access3.cgi');
if (document.referrer) {
document.write("?" + document.referrer);
}
document.write('">');
//-->
</script>
これにより前ページアドレスが定義されていない時は
<img src="access3.cgi">
前ページアドレスが定義されている時は
<img src="access3.cgi?前ページアドレス">
というタグがブラウザに返ってきます。

次にaccess3.cgiの
$ref = $ENV{"HTTP_REFERER"};   #リンク元のURL
を下のように書き換えます。
$ref = @ARGV[0];               #リンク元のURL
今までは,$ENV{"HTTP_REFERER"}をリンク元のURLとしていたために
このCGIを呼び出したページ(実際にはaccess3.htm)が常にリンク元のURLとなっていましたが,
@ARGVには<img src="access3.cgi?前ページアドレス">の?以降の部分,
つまり「前ページアドレス」という部分がはいるので,求めたいURLが正しく返ってくるわけです。

おまけとしてlogview3.cgiの
print <<"END";
</table>
</body>
</html>
END
を下のように書き換えます。
print <<"END";
</table>
<a href="./access3.htm">here</a>
</body>
</html>
END
これはあった方が便利という事なんでしょうね(^_^)

間違いがございましたらツッコミの程,宜しくお願い致します。

レスポンスは付いていません

[トップページに戻る]管理人 : キャメル