perlでスクリプトを作成するのに必要になってくるモジュールがサーバーにインストールされているか調査するのにfutomi's CGI Cafeのサーバーアナライザーを使ってみました。
以下、必要な情報のみ抜粋しています。
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
my $q = new CGI;
my $param = $ENV{'QUERY_STRING'};
my @param = split (/&/,$param);
print $q->header(-charset=>"shift-jis");
print $q->start_html(-title=>"Aizack Lab", -BGCOLOR=>'#ffffff'),
$q->center($q->h1('[perl] クエリ文字列取得サンプル')),
$q->hr,
$q->br,
$q->br,
$q->strong("取得したクエリ文字列"),
$q->br,
$q->br;
foreach my $tmp (@param)
{
my ($name,$value) = split (/=/,$tmp);
print $q->strong("名前:$name 値:$value"),
$q->br;
}
print $q->end_html;
exit;
use Digest::SHA::PurePerl qw(hmac_sha256_base64);
$pkv{"Service"} = "AWSECommerceService";
$pkv{"AWSAccessKeyId"} = "Your AccessKey";
$pkv{"AssociateTag"} = "Your AssociateID";
use URI;
$new = URI->new_abs('../download','http://aizack.net/lab/');
use URI;
$new = URI->new_abs('../download','http://lab.aizack.net/');
use sb::Language ();
my $text;
#インストールしたSereneBachの文字コードを取得(euc-jp版かutf-8版)
# $codeには、'euc' か 'utf8' が入る
my $code = sb::Language->get->charcode;
#次のコードをいれないとうまく変換ができないのですが
#たぶん、sjis の部分に変換前の文字コードを入れコードチェックを行う?
sb::Language->get->checkcode('','sjis');
#最後に$textの部分に変換したい文字が入っているスカラー変数を指定し、
#$codeの部分に変換後の文字コードを指定する。
$text = sb::Language->get->convert($text,$code);
#すると、$textに文字コードを変換した文字列がセットされます。
#!/usr/bin/perlという部分がありますが、まずこれを、プロバイダで定められたPerlへのパスを指定してください。
$pass = '';という部分がありますのでここに自分好みのパスワードを指定してください。
$pass = 'hogehoge';としてください。 続いて文字コードをapeboard+ で使われている文字コードと同じものを指定してください。 EUC-JP版をお使いでしたら
$moji = 'EUC-JP';SJIS版をお使いでしたら
$moji = 'SHIFT_JIS'; ←たぶんこれでいいはず(^^ゞのように設定してください。
#!/usr/bin/perlをプロバイダで定められたPerlへのパスに修正しておいてください。
# SB & MTのチェック用フラグ(汎用で使うときは 0)をSB & MT以外で使用するため
$issbmt = 1;
$issbmt = 0;に修正してください。でないとエラーが出ます。
apeboard(apeboard+のカレントディレクトリ)ipchk.cgiとIP_Base.pmを カレントフォルダ(apeboard_plus.cgiが入っているフォルダ)にコピーします。
├ apeboard_plus.cgi
├ ipchk.cgi [755]
├ IP_Base.pm [644]
├─ ipcheck / [755]
│ ├ list.cgi [755]
│ ├ settei.cgi [755]
│ ├ logchk.cgi [755]
│ └ 他のファイル [666]
# 必要なファイルのパス指定 ------------------------------------------------で、666行目あたりの「write_message」と言うコマンドの # データファイルを読み込む -----と言うところの前の部分に..
use IP_Base;
require './jcode.pl';
require './boardini.cgi';
require './skinini.cgi';
## ひらがなでチェックする --------------------------------------
$bbdy = $message;
&jcode'convert(*bbdy, 'euc');
if ($bbdy !~ m/(\xA4[\xA1-\xF3]){2}/){
&print_error("コメントを正しくお書きくださいね!");
}
## IP Spam Filter Start_! --------------------------------------
my $ctp = 1;
if (IP_Base::_allow_mail_address($mail,'./ipcheck') == 1){ $ctp = 4; }
if (IP_Base::_check_ip_base($ENV{'REMOTE_ADDR'},'./ipcheck',$ctp,'BBS')==0){
&print_error("あなたのIPアドレス $ENV{'REMOTE_ADDR'} は投稿制限の対象となっています。");
}
# データファイルを読み込む --------------------------------------