一旦想到,就一定要做到用德语地址怎么写怎么写

汇集网络营销培训精英开设专业的电子商务培训课程:网络营销培训,学网络营销,网络营销培训班,网络营销学校,SEO培训,网络推广培训,网络营销培训学校,电商实战培训.是专业网络营销培训学校.学网络营销培训找网络营销培训机构请拨湖南阳光电子学校电话:8。重点招生地区是:北京天津上海重庆广东广州深圳潮州佛山江门湛江茂名肇庆惠州梅州汕尾河源阳江清远东莞中山揭阳云浮珠海汕头韶关浙江杭州宁波湖州绍兴金华衢州舟山台州丽水温州嘉兴山东青岛泰安烟台威海济宁潍坊日照莱芜临沂德州聊城滨州菏泽淄博枣庄东营济南福建福州厦门宁德莆田三明泉州漳州南平龙岩湖北武汉荆门鄂州孝感黄冈咸宁随州恩施黄石襄樊十堰荆州宜昌湖南长沙岳阳常德张家界益阳郴州永州怀化娄底湘西株洲湘潭衡阳邵阳江西南昌景德镇萍乡九江新余鹰潭赣州吉安宜春抚州上饶河南郑州开封洛阳平顶山焦作鹤壁新乡安阳濮阳许昌漯河三门峡南阳商丘信阳周口驻马店吉林长春吉林四平辽源通化白山松原白城延边辽宁大连鞍山抚顺本溪丹东锦州营口阜新辽阳盘锦铁岭朝阳葫芦岛沈阳四川成都自贡攀枝花泸州德阳绵阳广元遂宁内江乐山南充宜宾广安达州眉山雅安巴中资阳阿坝甘孜凉山云南昆明曲靖玉溪保山昭通丽江普洱临沧文山红河西双版纳楚雄大理德宏怒江迪庆河北秦皇岛石家庄唐山承德邯郸邢台张家口沧州廊坊衡水保定山西太原大同阳泉长治晋城朔州晋中运城忻州临汾吕梁江苏南京连云港扬州徐州泰州宿迁淮安盐城无锡常州苏州南通镇江安徽安庆黄山滁州阜阳宿州巢湖六安亳州池州宣城合肥芜湖蚌埠淮南马鞍山淮北铜陵广西南宁北海防城港钦州贵港玉林百色贺州河池来宾崇左柳州桂林梧州甘肃兰州嘉峪关金昌白银天水武威张掖平凉酒泉庆阳定西陇南临夏甘南海南海口三亚贵州贵阳六盘水遵义安顺铜仁毕节黔西南黔东南黔南新疆乌鲁木齐克拉玛依吐鲁番哈密和田阿克苏喀什巴音郭楞蒙古昌吉博尔塔拉蒙古伊犁哈萨克塔城阿勒泰青海西宁海东海北黄南海南果洛玉树海西宁夏银川石嘴山吴忠固原中卫陕西西安铜川宝鸡咸阳渭南延安汉中榆林安康商洛西藏拉萨昌都山南日喀则那曲阿里林芝黑龙江哈尔滨齐齐哈尔鸡西鹤岗双鸭山大庆伊春佳木斯七台河牡丹江黑河绥化大兴安岭内蒙古呼和浩特包头乌海赤峰通辽鄂尔多斯呼伦贝尔巴彦淖尔乌兰察布兴安锡林郭勒阿拉善
0基础【网络营销_网站建设_淘宝网店】精品课程
*******实战型网络营销专家授课*******
咨询电话:8,7
【十大课程模块+实战+核心技术+技巧】
SEO搜索引擎优化
SEM搜索引擎优化
网络营销策论
SMM社会化媒体营销
MMM移动媒体营销
EPM电子商务平台营销
淘宝天猫店实战演练
营销型网站建站
营销理论解析
行业应用及大项目实战
网络营销技术文章
友情链接:
请记住我们的网址:
阳光-网络营销教育品牌机构#!/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;}

我要回帖

更多关于 生日快乐德语怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信