FC2ブログ
2008
10.16

web拍手を改造する

っても、このスクリプト自体が、2003年に配布されたものなので、非常にアレですが。。

http://www.webclap.com/etc/script.html

改変後の再配布はだめっぽいので、適当に diff を。

まずやったこと。
・UTF8に
・http headerをまともに
・表示部分をごにょっと
・コメントフォームをtextarea にする
・その他
・データファイルの位置を直接アクセスできない場所に→設定ファイルを書き換えればOK

・utf8にする
UTF8にするのは簡単ですね。ファイルをutf-8で保存して、jcode.pl を使わないようにする。
clap.cgi の L15付近

require './jcode.pl';


kaiseki.cgi L15付近

require './jcode.pl';


clapinit.cgi の L122付近

&jcode'convert(*val, "sjis", "", "z");


以上をコメントに。


・http headerをなおす
clapinit.cgi L68付近

print "Content-type: text/html\n\n";

これを

print "Content-type: text/html; charset=utf-8\n\n";

こうします。というか、これ、charset書かないと、最近のapacheでは文字化けするかもしれません。そのまま使う人も、charset部分は書いたほうがいいと思います。元はsjisなので、Shift_JIS とか書けばいいのかな。

・表示部分
面倒なので、ヒアドキュメントを。
clapinit.cgi L69 以降

print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',"\n";
print '<html lang="ja"><head>',"\n";
print "<title>$title</title>\n";
print "</head>\n";

これを

print << "__HEAD__";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja"><head>
<title>$title</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
__HEAD__


ダブルクォーテーション気にしないでかけるから、やっぱいいね!
他も、気になればヒアドキュメント化するといいかもです。

・その他
clapinit.cgi L131

$val =~ s/"/&quot;/g;

このままでも問題ないけど、emacs の perl-mode が誤解釈するので

$val =~ s/\"/&quot;/g;



・コメントフォームをtextarea にする
clap.cgi L154付近

print '<input type=text name=hitokoto size=50 maxlength=50><br>',"\n";

textareta にします。
clapinit.cgi L128

if ($key eq "comment") {


if ($key eq "comment" || $key eq "hitokoto") {


っても、comment って key は、とってもなさそうですけど。。
改行を<br>にする処理を付け加えます。これで、コメント表示のところで、ちゃんと改行されて表示されます。

・データファイル位置
まぁ、設定ファイル直すだけなんで特にはなし。


CGI.pm を使うように直してもいいかなと思ったので、面倒になったのでこの程度で。
メールを送るようにするとかも考えたけど面倒に(ry


そんな感じで、http://ro.mukya.net/webclap/clap.cgi で運用中。
スポンサーサイト




トラックバックURL
http://noriko3.blog42.fc2.com/tb.php/100-aadaa094
トラックバック
コメント
管理者にだけ表示を許可する
 
back-to-top