投稿者の情報は、掲示板に書き込みをする際にCGIで環境変数という形で取得できます。 環境変数は、CGIだけではなく、JavaScriptでも使えますので、これを使わない手はありません。 そこで、JavaScriptを使った環境変数の取得についてお話します。 仕組みの概要はとても簡単です。Javascriptを掲示板の投稿するページに貼り付けておき、JavaScriptを使って環境変数を取得します。 その後、掲示板に投稿したときに、記事などと一緒にCGIへ送るのです。 送るときは、hidden属性を使って送るといいでしょう。
あとは、CGIプログラム側でJavaScript側から送られてきた、環境変数を取得して、 CGIで取得した環境変数と照らし合わせて、CGI側で取得できなかった環境変数をJavaScriptの環境変数で補完すればいいわけです。 JavaScriptで取得できる環境変数は、以下の通りです。
・screen.colorDepth 画面の表示ビット数
・screen.width 画面幅
・screen.height 画面高さ
・navigator.cookieEnabled Cookieが使えるか
・navigator.cpuClass CPUの種類
・navigator.javaEnabled() JAVAが使えるか
・history.length ブラウザの履歴数
・document.referrer リンク元URL
以下は記述例です。一番下のhidden項目は、JavaScriptが使えるかどうかをチェックしています。
<script language = "JavaScript">
<!--
function env() {
document.write( "<input type = 'hidden' name = 'color' value = '" + screen.colorDepth + "'>" );
document.write( "<input type = 'hidden' name = 'width' value = '" + screen.width + "'>" );
document.write( "<input type = 'hidden' name = 'height' value = '" + screen.height + "'>" );
document.write( "<input type = 'hidden' name = 'cookie' value = '" + navigator.cookieEnabled + "'>" );
document.write( "<input type = 'hidden' name = 'cpu' value = '" + navigator.cpuClass + "'>" );
document.write( "<input type = 'hidden' name = 'java' value = '" + navigator.javaEnabled() + "'>" );
document.write( "<input type = 'hidden' name = 'history' value = '" + history.length + "'>" );
document.write( "<input type = 'hidden' name = 'referrer' value = '" + document.referrer + "'>" );
document.write( "<input type = 'hidden' name = 'javascript' value = 'true'>" );
}
//-->
</SCRIPT>