FrontPage

オリジナル.

設置

% cat .htaccess
Options ExecCGI
AddType text/html cgi
AddHandler cgi-script cgi
DirectoryIndex bbs.cgi
<Files ~ "\.(dat)$">
deny from all
</Files>

改造

さしあたり

設定と,文字コード変更,携帯閲覧対応その他を行ってみた.

% diff ./bbs.cgi ./bbs.cgi_org
27c27
< $admin_pass = 'xxxxxxxx';
---
> $admin_pass = 'abc';
31c31
< $scriptname = '';
---
> $scriptname = 'bbs.cgi';
43c43
< $title = 'Bikesummer2006 BBS';
---
> $title = '掲示板';
50,51c50
< <b>Bikesummer2006 BBS</b><br>
< <img src="http://maty.img.jugem.jp/20060713_215300.jpg">
---
> <b>掲示板</b><br>
61c60
< $home = 'http://www.bikesummer-jp.org/';
---
> $home = './index.html';
120c119
< $img_type = 0;
---
> $img_type = 1;
136c135
< $target = 0;
---
> $target = 1;
150c149
< $max_length = 99999;
---
> $max_length = 100;
154c153
< $emp_title = 'undefined';
---
> $emp_title = '未記入';
188c187
< $count_color = "#eeeeff";
---
> $count_color = "#0000ff";
234,235d232
<                       #--文字参照に
<                       $r_mail =~ s/(.)/'&#'.ord($1).';'/eg;
270,271c267,268
< #                             print"<center>";
< #                             print"<table border=\"0\" width=\"90%\"><tr><td>\n";
---
>                               print"<center>";
>                               print"<table border=\"0\" width=\"90%\"><tr><td>\n";
279,281c276,277
< #                             print"</blockquote></td></tr></table>\n";
<                               print"</blockquote>\n";
< #                             print"</center>";
---
>                               print"</blockquote></td></tr></table>\n";
>                               print"</center>";
385,386c381
< #     print"<!-- ";
< #     print"<font color=\"$host_color\"><div align=\"right\"><small>";
---
>       print"<font color=\"$host_color\"><div align=\"right\"><small>";
389c384
< #             print"$host";
---
>               print"$host";
392c387
< #             print"/";
---
>               print"/";
395c390
< #             print"$ip";
---
>               print"$ip";
397c392
< #     print"</small></div></font> -->\n";
---
>       print"</small></div></font>\n";
737c732
<               &jcode'convert(*value,'euc');
---
>               &jcode'convert(*value,'sjis');
877c872
< <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
---
> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
896c891
<       print"<div align=\"right\"><small><a href=\"http://happy.honesto.net/cgi/\">PhotoBBS&nbsp;CGI-LAND</a> & mod <a href=\"http://hpv.cc/~maty/\">matoken</a> &gt; <a href=\"diff.html\">diff</a></small></div>\n";
---
>       print"<div align=\"right\"><small><a href=\"http://happy.honesto.net/cgi/\">PhotoBBS&nbsp;CGI-LAND</a></small></div>\n";

画像表示時にオリジナルが見た目だけ縮小されて表示される

重くてかなわないし,あれなのでサムネイル画像を作ってそちらを表示する様修正.

% diff bbs-i.cgi bbs.cgi
25,27d24
< #cpan からget
< use Image::Magick;
<

ここは画像表示するかどうかのパラメータなので関係なし.

123c120
< $img_type = 1;
---
> $img_type = 0;

$tmb のとこbug 出そう.ホンとは格納時にファイル名だけにしちゃえばすっきり.というかパス変更が出来なくなるのでそうすべきだよなぁ

419,420d415
<                       $tmb = $img;
<                       $tmb =~s/$img_dir\//$img_dir\/tmb_/;
422c417
<                       print"<img src=\"$tmb\" width=\"$thumb_width\" height=\"$thumb_height\" border=\"0\">";
---
>                       print"<img src=\"$img\" width=\"$thumb_width\" height=\"$thumb_height\" border=\"0\">";
803,804d797
<       &convert($file_name);
<

今回のメイン.

1118,1132d1110
<
< #-------------------------------------
< #---- image resize
< #-------------------------------------
< # $thumb_height : 縮小高さ
< # $thumb_width  : 縮小幅
< # $img_dir      : 画像保存ディレクトリ
< sub convert(){
<       my $image = $_[0];
<       my $m = Image::Magick->new;
<       $m->Read("$img_dir/$image");
<       $m->Scale(width=>$thumb_width, height=>$thumb_height);
<       $m->Write("$img_dir/tmb_$image");
<       return($m);
< }

Upload 時に処理が走る様にしたので,既存のファイルには対応出来ない.
とりあえず,数が少ないので手動にて縮小.

% convert -geometry 64x64 06071501021100.gif tmb_06071501021100.gif

掲示板全部表示

215d210
<       if($in{disp}){$disp=$in{disp}}

として,

http://bikesummer-jp.org/bbs/bbs-i.cgi?from=0&disp=100

にアクセスすると頭から100個表示される様に

http://bikesummer-jp.org/bbs/bbs-i.cgi?from=0&disp=1

とかすると,最新の1件だけが表示.
これだと,投稿があるたんびに記事が変わるのでパーマネントリンクには使えない.
ということで,次はパーマネントリンク処理を入れたい.あ,メール通知機能も欲しいな.

SPAM 対策

SPAM がいっぱい来てます.
一応このscript にもdeny list みたいなのはあるんですが,ワイルドカードとかCYDER とかに対応していません.
とりあえず,.htaccess のdeny host にCYDER やhost を書いていってるんですがいたちごっこ.reject する割合は高くなってますが,その分bot が沢山やってきてる様な….
ということで猫認証とか入れたいけど,視覚障害者向けにはどうすれば良いんだろう….
alt とかに書くと読み上げてくれたりするのかな?

  • パーマネントリンク
  • メール通知
  • RSS

参考文献



spam 避けですcheck を付けて下さい

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-01-10 (木) 19:53:32 (3624d)