好みに応じて# 基本設定 #の他の部分やHTMLの部分に手を加えることもできます。基本設定とHTML文を参照。
またメールによる新規投稿通知機能も改造可能です。メール送信と自家製サーバ構築を参照。
入力データの取り扱い
さて、いよいよ本物のPerlスクリプトの改造です。
| ########
# 主文 # ######## : : ### データ整形 ### $value =~ s/%0D%0A/<br>/g; $value =~ s/%0A/<br>/g; $value =~ s/%0D/<br>/g; $value =~ s/%09/ /g; $value =~ s/%3C/</g; $value =~ s/%3E/>/g; |
真ん中の$value =~ s/%09/ /g;はタブをスペース5つ分に変換します。HTMLは通常のタブを理解することが出来ません。またタブはDMBのスクリプト内部で特殊な意味に使われています。したがってこの変換も技術的な理由から必要ですが、スペース5つ分が気に入らなければ$value =~ s/%09/ /g;としてスペース一つに変換することも出来ます。
DoubleMessageBoard日本語版は投稿中のHTMLタグを全て無効にします。もしHTMLを有効にしたい時は最後の二行
$value =~ s/%3C/</g;
と
$value =~ s/%3E/>/g;
を削除してください。ただしHTMLを有効にすることが如何に危険なことであるかを十分に理解し、自分で必要な措置を取った上で行って下さい。
投稿時刻の記録
DMB日本語版は出荷時に、ゲストが投稿を行った時刻を現地時刻で記録するように設定されています。
| ##############
# 投稿受付け # ############## : : $posted = localtime(time); |
ゲストのメールアドレス
メールアドレスの表示方法も変更可能です。
| ##############
# 投稿受付け # ############## : : if ($data{'email'}) {$data{'name'} = "<a href=\"mailto:$data{'email'}\">$data{'name'}</a>";} |
| ##############
# 投稿受付け # ############## : : if ($data{'email'}) {$data{'email'} = "<a href=\"mailto:$data{'email'}\">$data{'email'}</a>";} |
書込み禁止
ゲストのIPアドレスが分かっている場合、$ENV{'REMOTE_ADDR'}を利用して書込みを禁止することが出来ます。またブラウザ情報を$ENV{'HTTP_USER_AGENT'}で取得することも出来ます。特定IPからの書込みを禁止するには# 基本設定 #
| #!/usr/bin/perl
############ # 基本設定 # ############ |
| の直前にでも |
| #!/usr/bin/perl
if ($ENV{'REMOTE_ADDR'} eq '123.456.78.90') {die "いや〜ん、書込まないで〜";} ############ # 基本設定 # ############ |