この日記はGNSで生成しています。 |
などの方法が考えられます。ウチは1.で、CGIの本を見ればけっこう載っているはず。JavaScriptは知らないので2.はパス、3.はCGI日記システムではよくあることとして、4.の方法。
#!/usr/local/bin/perl # check referer # copyright 1999 GORRY. # 日記ディレクトリ $DIARY_URI = 'http://www.hoge.org/~funi/diary/'; # REFERERメール先 $MAIL_TO = 'funi@hoge.org'; # 引数格納 @argv = split( '&', $ENV{'QUERY_STRING'} ); foreach $i (@argv) { ( $var, $value ) = split( '=', $i ); $cgi{ $var } = $value; } # Refererが無効かどうかを判定 $referer = $ENV{ 'HTTP_REFERER' }; $jumpto = $cgi{ 'j' }; $mail = !0; $mail = 0 if ( $referer eq "" ); # 空 $mail = 0 if ( $referer =~ $DIARY_URI ); # 自分自身 $mail = 0 if ( $referer !~ "^http\:\/\/" ); # http://で始まっていない # REFERERが有効ならメール if ( $mail ) { open( S, "|mail -s \"@@REFERER $jumpto\" $MAIL_TO" ) || die "Cannot Mail"; print S "REFERER: $referer\n"; print S "JUMP TO: $jumpto\n"; close( S ); } # 本文に飛ばす print "Location: $DIARY_URL$jumpto\n\n";
_ これをdiary/log.cgiで置いておいて、
<A NAME="06" HREF="log.cgi?j=199910.html#06">1999/10/06</A>
_ こんな感じか。ただし、そのまま使うと「100人がReferer参照すると100本メールが飛んでくる」ので注意するべし。
メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]