CGI/perlによる掲示板を設置していますが、書き込むときに携帯端末からの固体識別情報を取得し管理したいと考えています。
当方のレベルに合わせて教えてもらえれば嬉しいです。
1・携帯端末を取得する方法
以下のようなURLを見ましたが根本的な段階で理解が足りなくて・・
端末を取得する方法とそれを書き込むファイル。また新たに作るファイルがあるかなど。
http://tachibana.blog.ocn.ne.jp/blog/2006/05/ez_7a39.html
http://www.ezinfo.jp/php/functions/
http://q.hatena.ne.jp/1176205759
2.携帯端末を取得できなかったときは書き込みを禁止する方法
3・ログ
ここが1番頭を悩ませているのですが(ていうか大きな勘違い?)、サーバに送られてくる「HTTP_USER_AGENT」「HTTP_X_UP_SUBNO」がどこに存在してどうやって確認するか。
4・アクセス制限する方法
(.htaccess設置経験はあるが端末規制の方法は知らない)
きっと不足な環境や項目があると思うので追記します。
(そのときにはこちらが理解できる説明だと助かります)
1.読みにくいですが、以下のページにサンプルコードも載ってます。
ケータイの端末識別情報を取得する方法 | モバイル(携帯電話・ケータイ)Web | 阿部辰也のブログ――人生はひまつぶし。
特に読み書きするファイル等は無いです。
2.1の方法で取得できなければ、専用のエラーページを用意してCGI側で出力するだけでは?
例
unless ( $mobile_id ) { print <<'__HTML__'; Content-type:text/html <html> 書き込みが許可されていません。 </html> __HTML__ }
3.HTTP_USER_AGENT は(管理者が)設定してあれば Web サーバーのログに。
HTTP_X_UP_SUBNO は標準では残りません。
いずれにせよこの場合ログをとりたければ自分でログファイルを作って残したほうがよいかと。
何のためのログかよくわかりませんが。
4.2の方法の応用でアクセス制限してください。
.htacces でもできなくは無いですが、非常に面倒です。
参考ページのリンクの2つですが・・
上のリンクは解決できると思いますが、現状の掲示板で対応させたいと考えています。
下のリンクはスクリプトが古すぎるようです。
回答をありがとうございます。
申しわけありません、レベル不足のためもう少し導いてもらえると嬉しいです。
まず1.に関してなのですが・・
例えば以下のフォーム内容でしたらどのような追加コードになるのでしょうか。
とりあえず「utn」だけは足してみたんですが・・
sub form2 {
local($job) = @_;
local($submit);
# クッキー取得
local($cnam,$ceml,$cpwd,$curl,$cmvw) = &get_cookie;
if ($curl eq "") { $curl = "http://"; }
$user=$ENV{'HTTP_USER_AGENT'};
if ( $user =~/DoCoMo/ ) { $mobile='post'; } else { $mobile='get'; }
print <<"EOM";
<form action="$registcgi" method="$mobile" name="myFORM" utn>
<input type=hidden name=mode value="regist">
●名前
<input type=text name=name size=15 value="$cnam" maxlength=20>
●タイトル
<input type=text name=sub size=20 value="$resub" maxlength=20>
EOM
if ($job eq "new") {
$submit = 'スレッドを生成';
} else {
$submit = ' 返信する ';
print "<input type=hidden name=res value=\"$in{'no'}\">\n";
print "<input type=\"checkbox\" name=\"sort\" value=\"1\" checked>";
print "スレッドをトップへソ\ート
\n";
}
print <<"EOM";
●メッセージ
<textarea name=comment cols=20 rows=5 wrap=soft></textarea>
EOM
print <<EOM;</p>
<input type=submit value="$submit">
</form>
EOM
}