supremebeingg happy is a duty.if you don't feel happy,pr

New 8000w Power Inverter 12V DC to 110V AC 8000w RV CA | eBay
Enter your search keyword
By clicking Confirm bid, you commit to buy this item from the seller if you are the winning bidder.
By clicking Confirm bid, you are committing to buy this item from the seller if you are the winning bidder and have read and agree to the Global Shipping Program . Import charges previously quoted are subject to change if you increase you maximum bid amount.
Loading...
, if the page does not update immediately.
Review and confirm your bid
Bid confirmation
FREE shipping
See item description
(Approximately ##1##)
(Enter ##1## or more)
(Enter more than ##1##)
Your max bid:
Increase max bid
Confirm bid
Increase max bid
Change bid
, you've been outbid. Don't let it get away - bid again!
, you're the highest bidder on this item. Hope you win it!
, you're the first bidder. Hope you win!
, you're currently the high bidder, but you're close to getting outbid.
, this auction is almost over and you're currently the high bidder.
, you're the high bidder, but the reserve price hasn't been met.
Please enter your bid again.
Please enter a valid number as the bid price.
Enter an amount that is equal or greater than the minimum bid required. This can be found under the bid entry box.
Maximum bids can't be lowered once they're submitted.
This seller requires the buyer to have a PayPal account to purchase this item. .
Your bid is greater than or equal to the Buy It Now price. We recommend you purchase this item via Buy It Now. If you still wish to bid, you may do so below.
Current bid:
(approximately ##1##)
Your maximum bid:
(approximately ##1##)
Increase your maximum bid:
By clicking 1 Click Bid, you commit to buy this item from the seller if you're the winning bidder.
(approximately ##1##)
Winning bid:
Starting bid:
Congrats! The auction has ended and you're the winner.
The auction has ended, but the reserve price was not met.
Sorry, the auction has ended and you were outbid.
Good news, you're the high bidder.
Sorry, you've been outbid.
You're the high bidder, but the reserve price is not met.
Please enter a higher amount than the current bid.
Maximum bids cannot be lowered once submitted.
Please enter a valid number.
Additional site navigationCopyright (C)
eBay Inc. All Rights Reserved. ,#!/usr/bin/perl
#┌─────────────────────────────────
#│ Aska BBS v3.5 ()
#│ Copyright (c) KentWeb
#│ webmaster@
#│ http://www./
#└─────────────────────────────────
$ver = 'ASKA BBS v3.5';
#┌─────────────────────────────────
#│ [注意事項]
#│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した
いかなる損害に対して作者は一切の責任を負いません。
#│ 2. 設置に関する質問はサポート掲示板にお願いいたします。
直接メールによる質問は一切お受けいたしておりません。
#└─────────────────────────────────
# 【ファイル構成例】
public_html (ホームディレクトリ)
+-- aska / aska.cgi
askalog.cgi [606]
#-------------------------------------------------
■基本設定
#-------------------------------------------------
# ライブラリ取り込み
require './jcode.pl';
# タイトル名
$title = "亜 州 ご 意 見 箱";
# タイトル文字の色
$tCol = "#666666";
# タイトル文字サイズ
$tSize = '24px';
# 本文文字サイズ
$bSize = '13px';
# 本文文字スタイル
$bFace = '"MS UI Gothic", "MS Pゴシック", Osaka';
# 記事題名の色
$subCol = "#DD0000";
# スクリプトURL
$script = './aska.cgi';
# ログファイル
$logfile = './askalog.cgi';
# 管理用パスワード
$pass = '0123';
# 最大記事数(これを超える記事は古い順に削除)
$max = 100;
# 戻り先URL
$home = "../index.html";
# タイトル画像を使う場合 (http://から画像を指定)
$ImgT = "";
$ImgW = 300; # 横幅サイズ
$ImgH = 70; # 縦幅サイズ
# bodyタグ
$body = '';
# URLの自動リンク (0=no 1=yes)
$autolink = 1;
# 引用部色変更
1 : 色指定を行うと「引用部」を色変更します
2 : この機能を使用しない場合は何も記述しないで下さい ($refCol="";)
$refCol = "#804000";
# 1ページあたりの記事表示件数
$pageLog = 10;
# メール通知機能
0 : 通知しない
1 : 通知する → 自分の投稿記事も通知する
2 : 通知する → 自分の投稿記事は通知しない
$mailing = 0;
# sendmailのパス(メール通知する場合)
$sendmail = '/usr/sbin/sendmail';
# メール通知先アドレス(メール通知する場合)
$mailto = 'xxx@xxx.xxx';
# タグ広告挿入オプション
の代わりに「広告タグ」を挿入。
→ 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能。
$banner1 = '';
# 表示部上部に挿入
$banner2 = '';
# 表示部下部に挿入
# 記事の更新は method=post に限定する場合(セキュリティ対策)
→ 0=no 1=yes
$postonly = 1;
# 他サイトから投稿排除時に指定する場合(セキュリティ対策)
→ 掲示板のURLをhttp://から書く
$baseUrl = '';
# 投稿制限(セキュリティ対策)
0 : しない
1 : 同一IPアドレスからの投稿間隔を制限する
2 : 全ての投稿間隔を制限する
$regCtl = 1;
# 制限投稿間隔(秒数)
→ $regCtl での投稿間隔
$wait = 60;
# 禁止ワード
# → 投稿時禁止するワードをコンマで区切る
$no_wd = '';
# 日本語チェック(投稿時日本語が含まれていなければ拒否する)
$jp_wd = 0;
# URL個数チェック
# → 投稿コメント中に含まれるURL個数の最大値
$urlnum = 3;
# 投稿後の処理
→ 掲示板自身のURLを記述しておくと、投稿後リロードします
→ ブラウザを再読み込みしても二重投稿されない措置。
→ Locationヘッダの使用可能なサーバのみ
$location = '';
# ホスト取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$gethostbyaddr = 0;
# アクセス制限(半角スペースで区切る、アスタリスク可)
→ 拒否ホスト名を記述(後方一致)【例】*.
$deny_host = '';
→ 拒否IPアドレスを記述(前方一致)【例】210.12.345.*
$deny_addr = '';
# 1回当りの最大投稿サイズ (bytes)
$maxData = 51200;
#-------------------------------------------------
■設定完了
#-------------------------------------------------
if ($mode eq 'regist') { & }
elsif ($mode eq 'find') { & }
elsif ($mode eq 'howto') { & }
elsif ($mode eq 'admin') { & }
elsif ($mode eq 'usrdel') { & }
elsif ($mode eq 'check') { & }
#-------------------------------------------------
アクセス制限
#-------------------------------------------------
sub axscheck {
# IP&ホスト取得
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($gethostbyaddr && ($host eq "" || $host eq $addr)) {
$host = gethostbyaddr(pack("C4", split(/?./, $addr)), 2);
# IPチェック
local($flg);
foreach ( split(/?s+/, $deny_addr) ) {
s/?./???./g;
s/?*/?.?*/g;
if ($addr =? /^$_/i) { $flg = 1; }
if ($flg) {
&error("アクセスを許可されていません");
# ホストチェック
} elsif ($host) {
foreach ( split(/?s+/, $deny_host) ) {
s/?./???./g;
s/?*/?.?*/g;
if ($host =? /$_$/i) { $flg = 1; }
if ($flg) {
&error("アクセスを許可されていません");
if ($host eq "") { $host = $ }
#-------------------------------------------------
#-------------------------------------------------
sub html {
local($r_sub,$r_com);
# クッキー取得
local($cnam,$ceml,$curl,$cpwd) = &get_
if (!$curl) { $curl = 'http://'; }
# レス処理
$in{'res'} =? s/?D//g;
if ($in{'res'}) {
local($flag,$no,$dat,$nam,$eml,$sub,$com);
open(IN,"$logfile");
while () {
($no,$dat,$nam,$eml,$sub,$com) = split(//);
if ($in{'res'} == $no) { $flag = 1; }
close(IN);
if (!$flag) { &error("該当記事が見つかりません"); }
$sub =? s/^Re://g;
$sub =? s/?[?d+?]?s?//g;
$r_sub = "Re:[$no] $sub";
$r_com = "& $com";
$r_com =? s//?r& /
print "?n";
print "$banner1?n" if ($banner1 ne "");
# タイトル
if ($ImgT) {
print "?n";
print "$title?n";
print <<EOM;
メッセージ
(英数字で8文字以内)
クッキー情報保存
local($i) = 0;
open(IN,"$logfile") || &error("Open Error: $logfile");
while () {
next if ($i
$page + $pageLog);
local($no,$dat,$nam,$eml,$sub,$com,$url) = split(//);
if ($eml) { $nam = ""; }
if ($autolink) { &auto_link($com); }
if ($refCol) { $com =? s/([?>]|^)(&[^<]*)/$1$2/g; }
print "[$no] $sub?n";
print "投稿者:$nam 投稿日:$dat?n";
print "[]$com";
print "" if ($url);
print "?n";
close(IN);
print <<EOM;
# ページ繰り越し
local($next) = $page + $pageL
local($back) = $page - $pageL
if ($back >= 0) {
print "?n";
if ($next < $i) {
print "?n";
# 著作権表示(削除禁止)
print <<EOM;
#-------------------------------------------------
#-------------------------------------------------
sub regist {
# 投稿チェック
if ($postonly && !$post_flag) { &error("不正なアクセスです"); }
if ($baseUrl) { &refC }
# チェック
if ($no_wd) { &no_ }
if ($jp_wd) { &jp_ }
if ($urlnum > 0) { & }
# フォーム内容をチェック
local($err);
if ($in{'name'} eq "") { $err .= "名前が入力されていません"; }
if ($in{'comment'} eq "") { $err .= "コメントが入力されていません"; }
if ($in{'email'} && $in{'email'}!? /^[?w?.?-]+?@[?w?.?-]+?.[a-zA-Z]{2,6}$/) {
$err .= "Eメールの入力内容が不正です";
if ($err) { &error($err); }
if ($in{'url'} eq "http://") { $in{'url'} = ""; }
if ($in{'sub'} eq "") { $in{'sub'} = "無題"; }
# 先頭記事読み取り
local($top,$i,$flag,@data);
open(DAT,"+< $logfile") || &error("Open Error: $logfile");
eval 'flock(DAT, 2);';
# 重複投稿チェック
local($no,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$tim) = split(//, $top);
if ($in{'name'} eq $nam && $in{'comment'} eq $com) {
close(DAT);
&error("二重投稿は禁止です");
# 連続投稿チェック
local($time) =
if ($regCtl == 1) {
if ($host eq $hos && $time - $tim < $wait) { $flag = 1; }
} elsif ($regCtl == 2) {
if ($time - $tim < $wait) { $flag = 1; }
if ($flag) {
close(DAT);
&error("現在投稿制限中です。もうしばらくたってから投稿をお願いします");
# 記事No採番
# 削除キー暗号化
local($pwd);
if ($in{'pwd'} ne "") { $pwd = &encrypt($in{'pwd'}); }
# 時間取得
local($min,$hour,$mday,$mon,$year,$wday) = (localtime($time))[1..6];
local(@wk) = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
local($date) = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$wk[$wday],$hour,$min);
# 記事数調整
$data[0] = $
while () {
push(@data,$_);
last if ($i >= $max-1);
seek(DAT, 0, 0);
print DAT "$no$date$in{'name'}$in{'email'}$in{'sub'}$in{'comment'}$in{'url'}$host$pwd$time?n";
print DAT @
truncate(DAT, tell(DAT));
close(DAT);
# クッキーを記憶
if ($in{'cook'} eq 'on') {
&set_cookie($in{'name'},$in{'email'},$in{'url'},$in{'pwd'});
# メール通知処理
if ($mailing == 1 || ($mailing == 2 && $in{'email'} ne $mailto)) { &mail_ }
# リロード
if ($location) {
if ($ENV{'PERLXS'} eq "PerlIS") {
print "HTTP/1.0 302 Temporary Redirection?r?n";
print "Content-type: text/html?n";
print "Location: $location??n?n";
&message("投稿は正常に受理されました");
#-------------------------------------------------
ワード検索
#-------------------------------------------------
sub find {
print <<EOM;
キーワードを入力し、検索ボタンを押してください。
キーワードはスペースで区切って複数指定することができます。
キーワード
foreach ("AND", "OR") {
if ($in{'cond'} eq $_) {
print "$_?n";
print "$_?n";
print " 表?示 ?n";
foreach (10,15,20,25,30) {
if ($in{'view'} == $_) {
print "$_件?n";
print "$_件?n";
print <<EOM;
# ワード検索の実行と結果表示
if ($in{'word'} ne "") {
# 入力内容を整理
$in{'word'} =? s/?x81?x40/ /g;
local(@wd) = split(/?s+/, $in{'word'});
print "?n";
local($i) = 0;
local(@find);
open(IN,"$logfile") || &error("Open Error: $logfile");
while () {
local($no,$dat,$nam,$eml,$sub,$com,$url) = split(//);
$flag = 0;
foreach $wd (@wd) {
if (index("$no $nam $eml $sub $com $url",$wd) >= 0) {
$flag = 1;
if ($in{'cond'} eq 'OR') { }
if ($in{'cond'} eq 'AND') {
$flag = 0;
if ($flag) {
next if ($i
$page + $in{'view'});
push(@find,$_);
close(IN);
print "▽ $in{'word'} に関連する記事は$i件見つかりました。?n";
foreach (@find) {
local($no,$ymd,$nam,$eml,$sub,$com,$url) = split(//);
if ($eml) { $nam=""; }
if ($url) { $com .= ""; }
print "[$no] $sub ";
print "投稿者:$nam 投稿日:$ymd?n";
print "$com?n";
print "?n";
$next = $page + $in{'view'};
$back = $page - $in{'view'};
if ($back >= 0) {
print "?n";
if ($next < $i) {
print "?n";
print <<EOM;
#-------------------------------------------------
管理モード
#-------------------------------------------------
sub admin {
if ($in{'pass'} eq "") { & }
elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }
# 削除処理
if ($in{'job'} eq "dele" && $in{'no'}) {
# 削除情報
local(@del) = split(/?0/, $in{'no'});
# 削除情報をマッチング
local(@data);
open(DAT,"+< $logfile") || &error("Open Error: $logfile");
eval 'flock(DAT, 2);';
while () {
local($no) = split(//);
local($flag);
foreach $del (@del) {
if ($no == $del) { $flag = 1; }
if (!$flag) { push(@data,$_); }
seek(DAT, 0, 0);
print DAT @
truncate(DAT, tell(DAT));
close(DAT);
# 修正画面
} elsif ($in{'job'} eq "edit" && $in{'no'}) {
if ($in{'no'} =? /?0/) {
&error("修正の場合選択する記事は1つのみです");
# 記事抽出
local($no,$dat,$nam,$eml,$sub,$com,$url);
open(IN,"$logfile") || &error("Open Error: $logfile");
while () {
($no,$dat,$nam,$eml,$sub,$com,$url) = split(//);
if ($in{'no'} == $no) { }
close(IN);
# 修正フォームへ
&edit_form($no,$dat,$nam,$eml,$sub,$com,$url);
# 修正実行
} elsif ($in{'job'} eq "edit2") {
if ($in{'url'} eq "http://") { $in{'url'} = ""; }
if ($in{'sub'} eq "") { $in{'sub'} = "無題"; }
# 読み出し
local(@data);
open(DAT,"+< $logfile") || &error("Open Error: $logfile");
eval 'flock(DAT, 2);';
while () {
local($no,$dat,$nam,$eml,$sub,$com,$url,$hos,$pwd,$tim) = split(//);
if ($in{'no'} == $no) {
$_ = "$no$dat$in{'name'}$in{'email'}$in{'sub'}$in{'comment'}$in{'url'}$hos$pwd$tim?n";
push(@data,$_);
seek(DAT, 0, 0);
print DAT @
truncate(DAT, tell(DAT));
close(DAT);
# 完了メッセージ
&message("記事を修正しました");
# 削除画面を表示
print <<EOM;
処理を選択して送信ボタンを押してください。
# 記事を展開
open(IN,"$logfile") || &error("Open Error: $logfile");
while () {
local($no,$dat,$nam,$eml,$sub,$com,$url,$hos) = split(//);
if ($eml) { $nam=""; }
$com =? s/]*(>|$)//g;
if (length($com) > 60) {
$com = substr($com,0,60) . '...';
print "[$no] $sub ";
print "$nam - $dat 【$hos】?n";
print "$com?n";
close(IN);
print <<EOM;
#-------------------------------------------------
修正フォーム
#-------------------------------------------------
sub edit_form {
$com =? s//?n/g;
if (!$url) { $url = "http://"; }
print <<EOM;
変更する部分のみ修正して送信ボタンを押してください。
メッセージ
#-------------------------------------------------
#-------------------------------------------------
sub howto {
print <<EOM;
この掲示板はクッキー対応です。一度記事を投稿いただくと、おなまえ、Eメール、URL、削除キーの情報は2回目以降は自動入力されます。(ただし利用者のブラウザがクッキー対応の場合)
投稿記事には、タグは一切使用できません。
記事を投稿する上での必須入力項目は「おなまえ」と「メッセージ」です。Eメール、URL、題名、削除キーは任意です。
記事には、半角カナは一切使用しないで下さい。文字化けの原因となります。
記事の投稿時に「削除キー」にパスワード(英数字で8文字以内)を入れておくと、その記事は次回削除キーによって削除することができます。
記事の保持件数は最大$max件です。それを超えると古い順に自動削除されます。
既存の記事に簡単に「返信」することができます。各記事にある「返信」のリンク部を押すと投稿フォームが返信用となります。
過去の投稿記事から「キーワード」によって簡易検索ができます。トップメニューののリンクをクリックすると検索モードとなります。
管理者が著しく不利益と判断する記事や他人を誹謗中傷する記事は予?告なく削除することがあります。
#-------------------------------------------------
ユーザ記事削除
#-------------------------------------------------
sub usrdel {
# 投稿チェック
if ($postonly && !$post_flag) { &error("不正なアクセスです"); }
if ($baseUrl) { &refC }
if ($in{'no'} eq '' || $in{'pwd'} eq '') {
&error("削除Noまたは削除キーが入力モレです");
local($flag,$match,@data);
eval 'flock(DAT, 2);';
open(DAT,"+< $logfile") || &error("Open Error: $logfile");
while () {
local($no,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw) = split(//);
if ($in{'no'} == $no) {
$flag = 1;
if (!$pw) { $flag = 2; }
$match = &decrypt($in{'pwd'}, $pw);
push(@data,$_);
if ($flag == 2) { &error("削除キーが設定されていません"); }
elsif (!$flag) { &error("該当記事が見当たりません"); }
elsif ($match != 1) { &error("削除キーが違います"); }
# ログを更新
seek(DAT, 0, 0);
print DAT @
truncate(DAT, tell(DAT));
close(DAT);
# 完了メッセージ
&message("記事を削除しました");
#-------------------------------------------------
フォームデコード
#-------------------------------------------------
sub decode {
local($buf);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
$post_flag = 1;
if ($ENV{'CONTENT_LENGTH'} > $maxData) {
&error("投稿量が大きすぎます");
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
$post_flag = 0;
$buf = $ENV{'QUERY_STRING'};
undef(%in); $page = 0;
foreach ( split(/&/, $buf) ) {
local($key, $val) = split(/=/);
$val =? tr/+/ /;
$val =? s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/
# S-JISコード変換
&jcode'convert(*val, "sjis", "", "z");
# エスケープ
$val =? s/&/&/g;
$val =? s/"/&/g;
$val =? s//&/g;
$val =? s/?r?n//g;
$val =? s/?r//g;
$val =? s/?n//g;
# ページ繰り越し
if ($key =? /^page(?d+)$/) {
$page = $1;
$in{$key} .= "?0" if (defined($in{$key}));
$in{$key} .= $
$mode = $in{'mode'};
# タイムゾーン設定
$ENV{'TZ'} = "JST-9";
$headflag = 0;
#-------------------------------------------------
HTMLヘッダ
#-------------------------------------------------
sub header {
if ($headflag) { }
print "Content-type: text/html?n?n";
print <<"EOM";
$headflag = 1;
#-------------------------------------------------
エラー処理
#-------------------------------------------------
sub error {
print <<EOM;
#-------------------------------------------------
クッキー発行
#-------------------------------------------------
sub set_cookie {
local(@cook) = @_;
local($gmt, $cook, @t, @m, @w);
@t = gmtime(time + 60*24*60*60);
@m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
@w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
# 国際標準時を定義
$gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",
$w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]);
# URLエンコード
foreach (@cook) {
s/(?W)/sprintf("%%%02X", unpack("C", $1))/
$cook .= "$_";
print "Set-Cookie: ASKA_BBS=$ expires=$gmt?n";
#-------------------------------------------------
クッキー取得
#-------------------------------------------------
sub get_cookie {
local($key, $val, *cook);
# クッキーを取得
$cook = $ENV{'HTTP_COOKIE'};
# 該当IDを取り出す
foreach ( split(/;/, $cook) ) {
($key, $val) = split(/=/);
$key =? s/?s//g;
$cook{$key} = $
# データをURLデコードして復元
foreach ( split(//, $cook{'ASKA_BBS'}) ) {
s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/
push(@cook,$_);
return (@cook);
#-------------------------------------------------
#-------------------------------------------------
sub encrypt {
local($in) = @_;
local($salt, $enc, @s);
@s = ('a'..'z', 'A'..'Z', '0'..'9', '.', '/');
$salt = $s[int(rand(@s))] . $s[int(rand(@s))];
$enc = crypt($in, $salt) || crypt ($in, '$1$' . $salt);
#-------------------------------------------------
#-------------------------------------------------
sub decrypt {
local($in, $dec) = @_;
local($salt) = $dec =? /^?$1?$(.*)?$/ && $1 || substr($dec, 0, 2);
if (crypt($in, $salt) eq $dec || crypt($in, '$1$' . $salt) eq $dec) {
return (1);
return (0);
#-------------------------------------------------
メール送信
#-------------------------------------------------
sub mail_to {
local($msub,$mbody,$mcom,$email);
# メールタイトルを定義
$msub = "[$title : $no] $in{'sub'}";
# 本文の改行?タグを復元
$mcom = $in{'comment'};
$mcom =? s//?n/g;
$mcom =? s/&/</g;
$mcom =? s/&/>/g;
$mcom =? s/&/”/g;
$mcom =? s/&/&/g;
$mbody = "$titleに以下の投稿がありました。?n?n";
$mbody .= "Date : $date?n";
$mbody .= "Host : $host?n";
$mbody .= "Agent: $ENV{'HTTP_USER_AGENT'}?n?n";
$mbody .= "名前 : $in{'name'}?n";
$mbody .= "email: $in{'email'}?n";
$mbody .= "題名 : $in{'sub'}?n";
$mbody .= "参照 : $in{'url'}?n" if ($in{'url'});
$mbody .= "?n$mcom?n";
# 題名をBASE64化
$msub = &base64($msub);
# メールアドレスがない場合は管理者アドレスに置き換え
if ($in{'email'} eq "") { $email = $ }
else { $email = $in{'email'}; }
# sendmail送信
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "To: $mailto?n";
print MAIL "From: $email?n";
print MAIL "Subject: $msub?n";
print MAIL "MIME-Version: 1.0?n";
print MAIL "Content-type: text/ charset=iso-2022-jp?n";
print MAIL "Content-Transfer-Encoding: 7bit?n";
print MAIL "X-Mailer: $ver?n?n";
foreach ( split(/?n/, $mbody) ) {
&jcode'convert(*_, 'jis', 'sjis');
print MAIL $_, "?n";
close(MAIL);
#-------------------------------------------------
自動リンク
#-------------------------------------------------
sub auto_link {
$_[0] =? s/([^=^?"]|^)(https??:[?w?.???-?/???&?=?@?;?#?:?%]+)/$1$2/g;
#-------------------------------------------------
REFチェック
#-------------------------------------------------
sub refCheck {
local($ref) = $ENV{'HTTP_REFERER'};
$ref =? s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/
$baseUrl =? s/(?W)/??$1/g;
if ($ref && $ref !? /$baseUrl/i) { &error("不正なアクセスです"); }
#-------------------------------------------------
BASE64変換
#-------------------------------------------------
# とほほのWWW入門で公開されているルーチンを参考にしました。
# http://tohoho.wakusei.ne.jp/
sub base64 {
local($sub) = @_;
&jcode'convert(*sub, 'jis', 'sjis');
$sub =? s/?x1b?x28?x42/?x1b?x28?x4a/g;
$sub = "=?iso-2022-jp?B?" . &b64enc($sub) . "?=";
sub b64enc {
local($ch)="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";
local($x, $y, $z, $i);
$x = unpack("B*", $_[0]);
for ($i=0; $y=substr($x,$i,6); $i+=6) {
$z .= substr($ch, ord(pack("B*", "00" . $y)), 1);
if (length($y) == 2) {
$z .= "==";
} elsif (length($y) == 4) {
$z .= "=";
#-------------------------------------------------
#-------------------------------------------------
sub enter {
print <<EOM;
パスワードを入力して下さい
#-------------------------------------------------
メッセージ表示
#-------------------------------------------------
sub message {
print <<EOM;
if ($in{'pass'} ne "") {
print "?n";
print "?n";
print <<EOM;
#-------------------------------------------------
禁止ワードチェック
#-------------------------------------------------
sub no_wd {
local($flg);
foreach ( split(/,/, $no_wd) ) {
if (index("$in{'name'} $in{'sub'} $in{'comment'}",$_) >= 0) {
if ($flg) { &error("禁止ワードが含まれています"); }
#-------------------------------------------------
日本語チェック
#-------------------------------------------------
sub jp_wd {
local($sub, $com, $mat1, $mat2, $code1, $code2);
$sub = $in{'sub'};
$com = $in{'comment'};
if ($sub) {
($mat1, $code1) = &jcode'getcode(*sub);
($mat2, $code2) = &jcode'getcode(*com);
if ($code1 ne 'sjis' && $code2 ne 'sjis') {
&error("題名又はコメントに日本語が含まれていません");
#-------------------------------------------------
URL個数チェック
#-------------------------------------------------
sub urlnum {
local($com) = $in{'comment'};
local($num) = ($com =? s|(https?://)|$1|ig);
if ($num > $urlnum) {
&error("コメント中のURLアドレスは最大$urlnum個までです");
#-------------------------------------------------
チェックモード
#-------------------------------------------------
sub check {
print <<EOM;
Check Mode
# ログファイル
if (-e $logfile) {
print "LOGパス:OK?n";
if (-r $logfile && -w $logfile) {
print "LOGパーミッション:OK?n";
print "LOGパーミッションが不正です。?n";
print "LOGのパスが不正です:NG → $logfile?n";
print <<EOM;

我要回帖

更多关于 being 的文章

 

随机推荐