#!/usr/local/bin/perl ########################################################## # ようつべぼ〜type2 Version 1.2 UPDATE:2007/08/01 # Copyright (C) Ez. All rights reserved. # # このスクリプトはフリーウェアです。 # スクリプト利用による全ての障害や損害などについて、一切の責任を負いません。すべて自己の責任においてご利用下さい。 # 著作権はEzが保有します。 # # Program : Ez # Homepage : Ez Club http://www.ezclubstd.com/ ########################################################## # 2007/08/01 V1.2 # □サイト移転の為URL変更・スパム対策強化。 # 2007/05/20 V1.1 # □動画(タグ貼り付けデータ)のみ表示機能追加。 # 2007/05/17 V1.0 # □初期バージョン。 ########################################################## # # 設置方法(パーミッションの設定はサーバーにより異なりますお使いのサーバーに読み替えてください。) # public_html(ホームページディレクトリ) # |-- ezyoutubebot2 (777)<---フォルダのパーミッション(ここもお忘れなく) # |-- jcode.pl (755)…(日本語ライブラリ) # |-- ezyoutubebot2.cgi (755)…(スクリプト本体) # |-- youtubebot2log.cgi (666)…(履歴ログ) # |-- 画像 # ########################################################## #日本語ライブラリjcode.pl #作者は歌代さんhttp://www.srekcah.org/jcode/ #感謝m(__)m require './jcode.pl'; #########各種設定######################################### $homepage = './ezyoutubebot2.cgi'; #戻るページのURL $script = './ezyoutubebot2.cgi'; # スクリプト名 $file1 = './youtubebot2log.cgi'; # ログ用ファイル $lockfile = './lock.dat'; # ロックファイル $kanripass = 'infocary'; #管理者パスワード半角英数8桁(重要)投稿・削除オールマイティ $toukoupass = 'flexflex'; #投稿者パスワード半角英数8桁(重要) $kanrimode = 1; #投稿パスワード管理 0:off 1:on 投稿パスワード管理者のみ投稿OKとする #レスにも投稿パスワード必要 2 に設定 $kanrimsg = '投稿にはパスワードが必要です。 【flexflex】 半角小文字8文字にて、入力お願いいたします。パスワードは定期的に変更になる場合がございます'; #投稿パスワード管理時のメッセージ #例 投稿パスワードを告知する場合などにもこのメッセージに付加して利用 $title = '車 自動車 動画 YouTube 動画貼り付け掲示板 offroading videos movies ようつべBBS-リンク集〜 みなさんで楽しくご活用ください'; #タイトル(タイトルバー用) $title1 = '車 自動車 動画 YouTube ようつべ 掲示板 リンク集 offroading videos movies '; #メインタイトル $title_col = '#ffffff'; #タイトル文字色 $title1img = 'youtubebot2.gif'; #メインタイトル画像 使用しない場合は'' $title2 = '車 自動車 動画 YouTube offroading videos movies ようつべ 掲示板 BBS リンク集 レス投稿画面'; #レス画面タイトル $title2img = 'youtubebot2.gif'; #レス画面タイトル画像 使用しない場合は'' $homename = '車 自動車 動画 YouTube ようつべ 掲示板 リンク集 ホーム'; #HOMEへのリンク名 $modoriname = '車 自動車 動画 YouTube ようつべ 掲示板 リンク集トップに戻る'; #戻りのリンク名 $reloname = 'リロード'; #リロードのリンク名 $vlistname = '動画のみ表示'; #動画のみリンク名 使用しない場合は '' $modoriname2= '車 自動車 動画 YouTube ようつべ 掲示板 リンク集へ戻る'; #掲示板への戻りのリンク名 $urlflg = 0; #URLの入力強制する 0:しない 1:強制 $urllinkflg = 0; #投稿URLのリンク有効有無 0:リンクしない 1:リンクする #投稿表示メッセージ(メッセージはご自由に) $chuimsg = 'YouTube Embedタグを
そのまま貼\付けでOK

著作権および肖像権等を
侵害する恐れのあるものの
投稿はご遠慮ください。'; $btn_col = '#ffffff'; #クリックボタン背景色 $btntx_col = '#000000'; #クリックボタン文字色 $btnsoli_col= '#000000'; #クリックボタン外枠色 $btncm1 = '車 自動車の動画を投稿'; #クリックボタンコメント(投稿用) $btncm2 = '車 自動車の動画投稿はこちらから'; #クリックボタンコメント(投稿画面表示) $btncm3 = '次の車 自動車 動画を見る'; #クリックボタンコメント(ログ次ページ用) $btncm4 = '前の車 自動車 動画を見る'; #クリックボタンコメント(ログ前ページ用) $btncm5 = 'Del'; #クリックボタンコメント(削除用) $btncm6 = 'この車 自動車 動画のレス'; #クリックボタンコメント(RES画面表示用) $btncm7 = 'この車 自動車 動画にレスする'; #クリックボタンコメント(レス投稿用) $kouname1 = '名前や、動画のタイトル・キーワードを
わかりやすくつけてください'; #項目名1(名前欄) $kouname2 = 'お持ちのホームページやブログのアドレス'; #項目名2(URL欄) $kouname3 = '車 自動車 動画に対するメッセージ'; #項目名3(メッセージ欄) $kouname4 = 'YouTube
Embed'; #項目名4(YouTube Embedタグ欄) $kouname5 = '文字色を選んでください'; #項目名5(文字色欄) $kouname9 = 'passwd'; #項目名9(削除用パスワード欄) $kouname10 = 'no.'; #項目名10(削除no.欄) $datamax = 100; #データ記録数Max何件までログを保管(メインログ) $dispmax = 10; #1ページ表示数(メインログ) $msglenmax = 1000; #メッセージレングス許可最大(初期値:半角300全角150文字) $dispmax2 = 10; #1ページ表示数(動画タグ貼り付けデータのみ表示時) $ckmojisu = 6; #投稿メッセージ文字数チェック 指定文字数(半角)より少ない場合はエラーとする。 $msgck2flg = 0; #メッセージチェック 0:しない 1:する #無意味なメッセージ(AAAAAやああああなど連打)少しでも回避のため。 #メッセージの内容によりたまたまチェックに引っかかる可能性もありますが、不都合な場合は0にしてください。 ######Youtubeタグ欄チェック################################################# $youtubeck = 0; # 他のタグも許す(他の動画やIMGなど):0 YoutubeEmbedタグのみ :1 $youdngerrmsg = '貼り付けタグエラー'; # 入力エラー時のメッセージ $dgngtag[0] = '!--'; # 許さないタグ $dgngtag[1] = 'table'; # 許さないタグ $dgngtag[2] = 'form'; # 許さないタグ $dgngtag[3] = 'xml'; # 許さないタグ $dgngtag[4] = 'script'; # 許さないタグ ####スパム対策############################################################## $dngerrmsg1 = 'メッセージ入力エラー'; # メッセージスパム入力エラー時のメッセージ $dngerrmsg2 = 'URL入力エラー'; # URLスパム入力エラー時のメッセージ $dngerrmsg3 = '名前入力エラー'; # 名前スパム入力エラー時のメッセージ #メッセージチェックを行う場合以下のTBLに入力されたらエラー対象となる文言を設定。TBLは0〜N件必要件数追加してください。 #メッセージ内に以下の言葉が含まれていたらエラーとする $spammesck = '1'; #メッセージチェックを行う:1 行わない:0 $dgngkeyword[0] = 'Good'; # 危険なキーワード $dgngkeyword[1] = 'Great'; # 危険なキーワード $dgngkeyword[2] = 'http:'; # 危険なキーワード $dgngkeyword[3] = 'Nice'; # 危険なキーワード $dgngkeyword[4] = 'Well done'; # 危険なキーワード $dgngkeyword[5] = 'Cool'; # 危険なキーワード #URLチェックを行う場合以下のTBLに入力されたらエラー対象となる文言を設定。TBLは0〜N件必要件数追加してください。 #URL内に以下の文字(URLの一部分)が含まれていたらエラーとする $spamurlck = '1'; #URLチェックを行う:1 行わない:0 $dgngurl[0] = 'sex'; # 危険なurl $dgngurl[1] = 'ero'; # 危険なurl #名前チェックを行う場合以下のTBLに入力されたらエラー対象となる文言を設定。TBLは0〜N件必要件数追加してください。 #名前内に以下の文字(名前の一部分)が含まれていたらエラーとする $spamnameck = '1'; #名前チェックを行う:1 行わない:0 $dgngname[0] = 'アダルト'; # 危険な名前 $dgngname[1] = 'エロ'; # 危険な名前 ########################################################################### ##親記事連投回数制限####(レスで記事を上げない場合のみ)############# $resupflg = 1; #レスで記事を上げる? 0:上げない 1:上げる $renzokumax = 0; #連続何回まで許す? 0:無制限 ###連投チェック#########(レスで記事を上げる場合など)############### $renkinshiflg = 0;#親記事連投禁止(親〜親 / 子〜親) 0:しない 1:禁止 ###連投(親・子記事両方含め)を秒数でチェック 0:しない 1:する $rentimeckflg = 1; $rensecd = 5; #何秒後連投OKとするか ##################################################################### #アクセス制限したいIPアドレス指定 *は全ての意味 #指定したいだけ例に従って繰り返し @DGADDR = ('xxx.xxx.xx','*.hogehoge.ne.jp'); ###################################################################### $back_img = '';# 壁紙の指定 指定しないときは'' $backnrep = 1;#壁紙リピート有無 0:リピート 1:リピートしない #壁紙リピート無し時のイラストの位置はHTMLヘッダ処理のbodyタグの%で微調整してください。(初期値は右より 80% 40%) $back_col = '#CCCCCC';# 背景色指定 $text_col = '#666666';# 文字色指定 $link_col = '#0000FF';# リンク色指定(未読) $vlink_col = '#CC0099';# リンク色指定(既読) $alink_col = '#0692f9';# リンク色指定(押したとき) ########スクロールバーの色######## $sctrack = '#000000'; $scface = '#000000'; $scshadow = '#666666'; $scarrow = '#666666'; $scbase = '#000000'; $schlgt = '#ffffff'; $sc3dl = '#000000'; $scdkshadw = '#000000'; ########その他色設定################# $bk_col1 = '#ffffff';#投稿部 背景 $bo_col1 = '#ffffff';# ボーダー色 $bktext_col1 = '#0692f9';# 文字色 $bk_col2 = '#CCCCCC'; #記事部 背景1 $bo_col2 = '#ffffff';# ボーダー色 $text_col2 = '#666666';#その他文字色指定 ####文字色TBL######################## $coltblnm[0] = 'くろ'; $coltbl[0] = '#333333'; $coltblnm[1] = 'とまと'; $coltbl[1] = '#ff6347'; $coltblnm[2] = 'ぴんく'; $coltbl[2] = '#ff69b4'; $coltblnm[3] = 'おれんじ'; $coltbl[3] = '#ffa500'; $coltblnm[4] = 'ほわいと'; $coltbl[4] = '#ffffff'; $coltblnm[5] = 'れっど'; $coltbl[5] = '#ff0000'; $coltblnm[6] = 'いえろー'; $coltbl[6] = '#ffff00'; $coltblnm[7] = 'ぶるー'; $coltbl[7] = '#0000ff'; $coltblnm[8] = 'みずいろ'; $coltbl[8] = '#0692f9'; ############################################################ #Youtube YoutubeEmbedタグ欄入力なしの場合の表示したいタグ 表示したくないときはタグ行削除 $youtubedmy〜EOM $youtubedmy =<<"EOM"; EOM ############################################################# #ページ上部に表示。バナーリンクやページリンクなどのタグ $bannerlink〜EOM $bannerlink =<<"EOM"; 中古車・車買取・中古車検索・中古車情報が満載の中古車販売・中古車ディーラーFLEX
著作権および肖像権等を侵害する恐れのあるものの投稿はご遠慮ください
みなさまのモラルによって、この掲示板の存続のお役に立てれば幸いです。モラルをもったご利用お願いいたします EOM ######### 設定はここまで ###################################################### ### メイン処理 ############################# $wh1 = 600;#TBL幅1 $wh2 = 600;#TBL幅2 $method = 'POST'; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()); $month = sprintf("%02d",$mon + 1); $mday = sprintf("%02d",$mday); $hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min); @youbi = ('日','月','火','水','木','金','土'); $today = "$month/$mday($youbi[$wday]) $hour:$min"; $secd = time; $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq $addr || $host eq "") { $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr; } &getcookie; #クッキーゲット &decode; #デコード &acdgcheck; #アクセスチェック if ($action eq 'act1'){#メイン更新 ✓ &put; #更新処理 &setcookie; #クッキーセット } if ($action eq 'act2'){#レス更新 ✓ &resput; #更新処理 &setcookie; #クッキーセット } if ($action eq 'del'){#削除 &check2; &logdel; #削除処理 } if ($action eq 'tp'){#登録画面表示 &html_head;#入力画面表示 &ptop2; &html_end; } if ($action eq 'resp'){#レス画面表示 &html_head; &resp; &html_end; } if ($action eq 'vlist'){#動画のみ表示 &html_head; &vlist; &html_end; } &html_head;#画面表示 &ptop; &html_end; #### HTMLヘッダ処理 ################################### sub html_head { print "Content-type: text/html; charset=Shift_JIS\n\n"; print<<"_EOF_"; _EOF_ print "\n"; print<<"_EOF_"; $title _EOF_ if ( $back_img ne "" ) { if ($backnrep == 1) { print "\n"; }else{ print "\n"; } } else { print "\n"; } } ##### HTMLフッダ処理 ################################# sub html_end{ print "
\n"; ########著作権リンクは書き換えないでください。 print "中古車車買取FLEXグループの買取専門店アップル アップルジャパン
\n"; print "動画 ユーチューブ ようつべ よ〜つべ 掲示板 リンク集
\n"; print "著作権および肖像権等を侵害する恐れのあるものの投稿はご遠慮ください
みなさまのモラルによって、この掲示板の存続のお役に立てれば幸いです。モラルをもったご利用お願いいたします
\n"; print "ようつべぼ〜type2 v1.2
by おもしろCGI Ez Club

\n"; print "YouTube Videos Favorite Movies rate\n"; ######## print "
\n"; print "\n"; print "\n"; print "\n"; print "

\n"; exit; } ##### デコード処理 ####################################### sub decode{ if($ENV{'REQUEST_METHOD'} eq "POST") {read(STDIN, $buffer, $ENV{CONTENT_LENGTH});} else {$buffer = $ENV{'QUERY_STRING'}}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'h2z_sjis(*value); &jcode'convert(*value,'sjis'); $value =~ s//>/g; $value =~ s/<\!--/<\!--/g; $value =~ s/\,/,/g; $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; $FORM{$name} = $value; } $action = $FORM{'action'}; $page = $FORM{'page'}; $hno = $FORM{'hno'}; } ##### ファイルリード ########################################### sub read_file{ local($file)=$_[0]; if (!open(IN,$file)){ &error("($file)ファイルINオープンエラー"); } local(@log) = ; close(IN); return @log; } ##### ファイルロック処理 ####################################### sub fllock { if (-e $lockfile) { ($mtm) = (stat($lockfile))[9]; if ($mtm < time - 180) {unlink($lockfile);} } foreach (1 .. 5) { if (-e $lockfile) {sleep(1);} else { open(LOCK,">$lockfile"); close(LOCK); return; } } &error("ロックされています。しばらく待ってから投稿してください。"); } ##### ファイルロック解除処理 #################################### sub funlock{ if (-e,$lockfile){unlink($lockfile);} } #### エラー処理 ################################################# sub error{ &html_head; print<<"_EOF_";
$title1
エラーでございます〜

$_[0]

$homename    $modoriname
_EOF_ &html_end; } ######### クッキーゲット #################################### sub getcookie { $cookies = $ENV{'HTTP_COOKIE'}; @pairs = split(/;/,$cookies); foreach $pair (@pairs) { ($FORM{'name'}, $value) = split(/=/, $pair); $FORM{'name'} =~ s/ //g; $DUMMY{$FORM{'name'}} = $value; } @pairs = split(/,/,$DUMMY{'ezyoutubebot2'}); foreach $pair (@pairs) { ($FORM{'name'}, $value) = split(/\!/, $pair); $COOKIE{$FORM{'name'}} = $value; } $c_name = $COOKIE{'name'}; $c_url = $COOKIE{'url'}; $c_mojicol = $COOKIE{'mojicol'}; } ######### クッキーセット ##################################### sub setcookie { ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60); $yearg += 1900 ; if ($secg < 10) { $secg = "0$secg"; } if ($ming < 10) { $ming = "0$ming"; } if ($hourg < 10) { $hourg = "0$hourg"; } if ($mdayg < 10) { $mdayg = "0$mdayg"; } $month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mong]; $youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$wdayg]; $date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT"; $cook="name\!$FORM{'name'},url\!$FORM{'url'},mojicol\!$FORM{'mojicol'}"; print "Set-Cookie: ezyoutubebot2=$cook; expires=$date_gmt\n"; } ##### サイズ変換 ####################################### sub sizehenkan { $licon =~ s/width="425"/width="350"/g; $licon =~ s/height="350"/height="262"/g; $licon =~ s/width="470"/width="350"/g; $licon =~ s/height="390"/height="262"/g; $licon =~ s/height="335"/height="262"/g; $licon =~ s/height="364"/height="262"/g; $licon =~ s/height="380"/height="262"/g; $licon =~ s/width="378"/width="350"/g; $licon =~ s/height="326"/height="262"/g; $licon =~ s/width="350"/width="350"/g; $licon =~ s/height="290"/height="262"/g; $licon =~ s/width="300"/width="350"/g; $licon =~ s/height="250"/height="262"/g; $licon =~ s/width="640"/width="350"/g; $licon =~ s/height="480"/height="262"/g; $licon =~ s/width="320"/width="350"/g; $licon =~ s/height="240"/height="262"/g; } ##### ログ振り分け処理 ####################################### sub logfuriwake { @llog = &read_file($file1); @mlog = (); @rlog = (); $maxno = ''; $maxname = ''; $maxmes = ''; $maxhost = ''; $maxsecd = ''; foreach(@llog){ ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$_); if ($lresno eq ''){ if ($action eq 'vlist') { if (length($licon) > 40) { push(@mlog,$_); } }else{ push(@mlog,$_); } }else{ push(@rlog,$_); } if ($lno >= $maxno){ $maxno = $lno; $maxname = $lname; $maxmes = $lmes; $maxhost = $lhost; $maxsecd = $lsecd; } } @rlog = reverse @rlog; } ########入力共通フォーム########################################## sub pform { print<<"_EOF_";
_EOF_ if ($action eq 'tp') { if ($kanrimode == 1) {#管理モード print "$kanrimsg\n"; } if ($kanrimode == 2) {#管理モード print "$kanrimsg\n"; } }else{ if ($kanrimode == 2) {#管理モード print "$kanrimsg\n"; } } print<<"_EOF_"; _EOF_ if ($action eq 'tp') { if ($kanrimode == 1) {#管理モード print "\n"; print "\n"; print "\n"; print "\n"; } if ($kanrimode == 2) {#管理モード print "\n"; print "\n"; print "\n"; print "\n"; } }else{ if ($kanrimode == 2) {#管理モード print "\n"; print "\n"; print "\n"; print "\n"; } } print<<"_EOF_"; _EOF_ print "\n"; print "\n"; print<<"_EOF_"; _EOF_ if ($action eq 'tp') { print<<"_EOF_"; _EOF_ } print "
$kouname9
$kouname9
$kouname9
$kouname1
$kouname2
$kouname5\n"; print " 
$kouname3
$kouname4
\n"; if ($action eq 'tp') { print "$chuimsg\n"; } print "
\n"; } ### 画面表示 ################################################## sub ptop{ print<<"_EOF_";
$bannerlink
$homename $reloname $vlistname
_EOF_ if ($title1img eq '') { print "$title1

\n"; }else { print "\"車 自動車 動画 ようつべ 掲示板 リンク集 よ〜つべ テレビ コマーシャル\"

\n"; } print<<"_EOF_";
_EOF_ &krlist; print<<"_EOF_";
_EOF_ } ### 入力画面表示 ################################################## sub ptop2{ print<<"_EOF_";
$bannerlink
$homename  $modoriname
_EOF_ if ($title1img eq '') { print "$title1

\n"; }else { print "\"車 自動車 動画 ようつべ 掲示板 リンク集 よ〜つべ テレビ コマーシャル\"

\n"; } print<<"_EOF_";
_EOF_ &pform; print<<"_EOF_";

\n"; print "\n"; print "\n"; print "
_EOF_ } ########## 一覧処理 ###################################### sub krlist{ #データ読み込み &logfuriwake; print "
\n"; if ($page eq '') { $spdat = 0; } else { $spdat = $FORM{'page'}; } $wktotal = @mlog - 1; $epdat = $spdat + $dispmax - 1; if ($epdat >= $wktotal) { $epdat = $wktotal; } $npdat = $epdat + 1; $bpdat = $spdat - $dispmax; for ($j=$spdat; $j <= $epdat && $j < $datamax ; $j++) { ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$mlog[$j]); $licon =~ s/<//g; &sizehenkan; $licon =~ s/,/\,/g; if (length($licon) > 40) { $wkicon = $licon; }else { $wkicon = "$youtubedmy"; } print "\n"; print "\n"; if ($wkicon eq '') { print "\n"; print "\n"; print "
\n"; }else{ print "\n"; } print "$wkicon\n"; print "\n"; if ($lurl) { if ($urllinkflg == 1){ print "$lname\n"; }else { print "$lname\n"; } } else { print "$lname\n"; } print "$ltoday($lno)
\n"; print "「$lmes」\n"; print "
\n"; print ""; print ""; print "\n"; print "
\n"; foreach(@rlog){ ($l2no,$l2resno,$l2today,$l2secd,$l2name,$l2url,$l2mail,$l2host,$l2icon,$l2mojicol,$l2mes,$l2etc1,$l2etc2,$l2etc3,$l2etc4,$l2etc5,$l2etc6,$dmy) = split(/,/,$_); if ($lno eq $l2resno){ if ($l2url) { if ($urllinkflg == 1){ print "$l2name
\n"; }else { print "$l2name\n"; } } else { print "$l2name\n"; } print "$l2today($l2no)
\n"; print "「$l2mes
\n"; } } print "車 自動車中古車をフレックスで探す\n"; print "中古車オークションで中古車を探す!相場を見る!\n"; print "
\n"; print "
\n"; } print "\n"; print "
\n"; if ($bpdat >= 0 ){ print "
\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; if ($epdat ne "$wktotal") { print "
\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; print "\n"; print "
\n"; print "$kouname10\n"; print "$kouname9\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; print " \"フレックス 自動車販売 株式会社 動画 ユーチューブ ようつべ リンク集 よ〜つべ\"
\n"; print " \"車 自動車の中古車 在庫を見る\"
\n"; print " \"車 自動車の中古車を探す\"
\n"; print " \"車 自動車 買取 無料査定 高価買取\"
\n"; print " \"動画削除依頼・関連外の動画投稿を報告!\"
\n"; print " \"車
\n"; print " \"landcruiser
\n"; print " \"ランクル200 ランドクルーザー200 掲示板 リンク集はこちら\"
\n"; print " \"landcruiser
\n"; print " \"ランクル100 ランドクルーザー100 掲示板 リンク集はこちら\"
\n"; print " \"landcruiser
\n"; print " \"landcruiser
\n"; print " \"ランクル80 ランドクルーザー80 掲示板 リンク集はこちら\"
\n"; print " \"landcruiser
\n"; print " \"ランクル70 ランドクルーザー70 掲示板 リンク集はこちら\"
\n"; print " \"landcruiser
\n"; print " \"ランクル60 ランドクルーザー60 掲示板 リンク集はこちら\"
\n"; print " \"landcruiser
\n"; print " \"ランクル プラド ランドクルーザー プラド 掲示板 リンク集はこちら\"
\n"; print "中古車
中古車情報
ランドクルーザー
ランクル100
ランクル80
ランクル70
ランクル60
プラド
シグナス
ランクル200
ハイエース
エルグランド
チェロキー
ボルボ
ミニクーパー
ランドローバー
旧車
ワーゲン
フレックス
車買取
\n"; print " \"車 自動車の中古車 在庫を見る\"
\n"; print " \"車 自動車の中古車を探す\"
\n"; print " \"車 自動車 買取 無料査定 高価買取\"
\n"; print " \"動画削除依頼・関連外の動画投稿を報告!\"
\n"; print "
\n"; } ########## 動画一覧処理 ###################################### sub vlist{ print<<"_EOF_";
$bannerlink
$modoriname2
_EOF_ if ($title1img eq '') { print "$title1

\n"; }else { print "\"車 自動車 動画 ようつべ 掲示板 リンク集 よ〜つべ テレビ コマーシャル\"

\n"; } #データ読み込み &logfuriwake; print "
\n"; if ($page eq '') { $spdat = 0; } else { $spdat = $FORM{'page'}; } $wktotal = @mlog - 1; $epdat = $spdat + $dispmax2 - 1; if ($epdat >= $wktotal) { $epdat = $wktotal; } $npdat = $epdat + 1; $bpdat = $spdat - $dispmax2; print "
\n"; for ($j=$spdat; $j <= $epdat && $j < $datamax ; $j++) { ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$mlog[$j]); $licon =~ s/<//g; &sizehenkan; $licon =~ s/,/\,/g; if (length($licon) > 40) { $wkicon = $licon; print "$wkicon\n"; } } print "
\n"; print "\n"; print "
\n"; if ($bpdat >= 0 ){ print "
\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; if ($epdat ne "$wktotal") { print "
\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; print "
\n"; } ########## チェック処理 ################################################ sub check{ if ($action eq 'act1'){ if ($kanrimode == 1) { &check3; } if ($kanrimode == 2) { &check3; } }else{ if ($kanrimode == 2) { &check3; } } if ($FORM{'name'} eq "") {&error("名前を入力してください");} if ($urlflg == 1) { if ($FORM{'url'} eq "") {&error("ホームページアドレスを入力してください");} } if (length($FORM{'mes'}) < $ckmojisu) {&error("メッセージを入力してください");} if (length($FORM{'mes'}) > $msglenmax) {&error("メッセージの長さがオーバーです。");} $mes = $FORM{'mes'}; #NGなキーワード/url/名前チェック#####################2007/07/22 $dgngkotoba = $FORM{'mes'}; $dgngurlin = $FORM{'url'}; $dgngnamein = $FORM{'name'}; if ($spammesck eq '1') { if ($dgngkeyword[0] ne '') { $dgngpcnt = 0; for ($dgngj=0; $dgngj <= $#dgngkeyword; $dgngj++) { $dgngindex = index("$dgngkotoba","$dgngkeyword[$dgngj]"); if ($dgngindex >= 0) { $dgngpcnt = $dgngpcnt + $dgngindex + 1; } } if ($dgngpcnt > 0) { &error($dngerrmsg1) ; } } } if ($spamurlck eq '1') { if ($dgngurl[0] ne '') { $dgngpcnt = 0; for ($dgngj=0; $dgngj <= $#dgngurl; $dgngj++) { $dgngindex = index("$dgngurlin","$dgngurl[$dgngj]"); if ($dgngindex >= 0) { $dgngpcnt = $dgngpcnt + $dgngindex + 1; } } if ($dgngpcnt > 0) { &error($dngerrmsg2) ; } } } if ($spamnameck eq '1') { if ($dgngname[0] ne '') { $dgngpcnt = 0; for ($dgngj=0; $dgngj <= $#dgngname; $dgngj++) { $dgngindex = index("$dgngnamein","$dgngname[$dgngj]"); if ($dgngindex >= 0) { $dgngpcnt = $dgngpcnt + $dgngindex + 1; } } if ($dgngpcnt > 0) { &error($dngerrmsg3) ; } } } ##############################################2007/07/22 if ($msgck2flg == 1){ if (substr($mes,0,4) eq substr($mes,length($mes)-4,4)) { {&error("メッセージを入力してください");} } } #############################################Youtubeタグ欄チェック if ($action eq 'act1'){ $okkotoba = $FORM{'myicon'}; foreach (@dgngtag){ if ($okkotoba =~ /<$_(.|\n)*>/i) { &error($youdngerrmsg); } } if ($youtubeck == 1){ if ($okkotoba ne '') { $okkeyword[0] = 'object'; # okなキーワード $okkeyword[1] = '425'; # okなキーワード $okkeyword[2] = '350'; # okなキーワード $okkeyword[3] = 'http://www.youtube.com'; # okなキーワード $okpcnt = 0; for ($okj=0; $okj <= $#okkeyword; $okj++) { $okindex = index("$okkotoba","$okkeyword[$okj]"); if ($okindex >= 0) { $okpcnt = $okpcnt + $okindex; } } if ($okpcnt != 122) { &error($youdngerrmsg) ; } } } } ############################################################### $name = $FORM{'name'}; if ($action eq 'act1'){ $iconwk = $FORM{'myicon'}; }else { $iconwk = ''; } $mojicol = $FORM{'mojicol'}; $url = $FORM{'url'}; &fllock; #ファイルロック &logfuriwake; if ($maxname eq $FORM{'name'} && $maxmes eq $FORM{'mes'}) { &funlock; &error("二重投稿エラー"); } if ($renkinshiflg == 1) { if ($action eq 'act1') { if ($maxhost eq $host) { &funlock; &error("連投エラー"); } if ($maxname eq $name) { &funlock; &error("連投エラー"); } } } if ($rentimeckflg == 1) { if ($maxhost eq $host) { $wksecd1 = time - $maxsecd; if ($wksecd1 < $rensecd) { $wksecd2 = $rensecd - $wksecd1; &funlock; &error("連投は$wksecd2秒後にお願いします。"); } } if ($maxname eq $name) { $wksecd1 = time - $maxsecd; if ($wksecd1 < $rensecd) { $wksecd2 = $rensecd - $wksecd1; &funlock; &error("連投は$wksecd2秒後にお願いします。"); } } } if ($action eq 'act1' && $resupflg == 0) { if ($renzokumax != 0) { $renzokucnt = 0; foreach $rwk (@mlog) { ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$rwk); if ( $lhost eq $host ) { $renzokucnt++ ; if ($renzokucnt >= $renzokumax) { &funlock; &error("連投は$renzokumax回までです。"); } }else{ if ( $lname eq $name ) { $renzokucnt++ ; if ($renzokucnt >= $renzokumax) { &funlock; &error("連投は$renzokumax回までです。"); } } } if ($lhost ne $host) { if ($lname ne $name) {last ;} } } } } } ########## 更新処理 ###################################### sub put { $maxovflg = 0; if ($#mlog + 1 >= $datamax) { $maxovflg = 1; ($lmno,$lmresno,$lmtoday,$lmsecd,$lmname,$lmurl,$lmmail,$lmhost,$lmicon,$lmmojicol,$lmmes,$lmetc1,$lmetc2,$lmetc3,$lmetc4,$lmetc5,$lmetc6,$dmy) = split(/,/,$mlog[$#mlog]); } $no = $maxno + 1; $resno = ''; unshift(@llog,"$no,$resno,$today,$secd,$name,$url,$mail,$host,$iconwk,$mojicol,$mes,$etc1,$etc2,$etc3,$etc4,$etc5,$etc6,\n"); if ($maxovflg == 1) { @saishin = (); foreach $wkllog (@llog) { $wkllog =~ s/\n//g; ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$wkllog); if ($lmno eq $lno || $lmno eq $lresno){ }else{ push(@saishin,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); } } if ( !(open(OUT1,">$file1"))) {&funlock;&error("($file1)ファイルOUTオープンエラー");} print OUT1 @saishin; close(OUT1); }else { if ( !(open(OUT1,">$file1"))) {&funlock;&error("($file1)ファイルOUTオープンエラー");} print OUT1 @llog; close(OUT1); } &funlock; #ファイルロック解除 } ### レス画面表示 ################################################## sub resp{ print<<"_EOF_";
$modoriname
_EOF_ if ($title2img eq '') { print "$title2

\n"; }else { print "\"車 自動車 動画 ようつべ 掲示板 リンク集 よ〜つべ テレビ コマーシャル\"

\n"; } &reslist; print<<"_EOF_";
_EOF_ &pform; print<<"_EOF_";

_EOF_ print<<"_EOF_";
_EOF_ } ########## レス画面一覧処理 ###################################### sub reslist{ #データ読み込み &logfuriwake; print "
\n"; foreach(@mlog){ ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$_); if ($hno eq $lno){ $licon =~ s/<//g; &sizehenkan; $licon =~ s/,/\,/g; if (length($licon) > 40) { $wkicon = $licon; }else { $wkicon = "$youtubedmy"; } print "\n"; print "\n"; if ($wkicon eq '') { print "\n"; print "\n"; print "
\n"; }else{ print "\n"; } print "$wkicon\n"; print "\n"; if ($lurl) { if ($urllinkflg == 1){ print "$lname\n"; }else { print "$lname\n"; } } else { print "$lname\n"; } print "$ltoday($lno)
\n"; print "「$lmes
\n"; foreach(@rlog){ ($l2no,$l2resno,$l2today,$l2secd,$l2name,$l2url,$l2mail,$l2host,$l2icon,$l2mojicol,$l2mes,$l2etc1,$l2etc2,$l2etc3,$l2etc4,$l2etc5,$l2etc6,$dmy) = split(/,/,$_); if ($lno eq $l2resno){ if ($l2url) { if ($urllinkflg == 1){ print "$l2name
\n"; }else { print "$l2name\n"; } } else { print "$l2name\n"; } print "$l2today($l2no)
\n"; print "「$l2mes
\n"; } } print "
\n"; print "
\n"; last; } } print "
\n"; } ########## レス更新処理 ###################################### sub resput { $no = $maxno + 1; $resno = $hno; unshift(@llog,"$no,$resno,$today,$secd,$name,$url,$mail,$host,$iconwk,$mojicol,$mes,$etc1,$etc2,$etc3,$etc4,$etc5,$etc6,\n"); @saishin = (); foreach $wkllog (@llog) { $wkllog =~ s/\n//g; ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$wkllog); if ($hno eq $lno){ if ($resupflg == 0) { push(@saishin,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); }else{ unshift(@saishin,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); } }else{ push(@saishin,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); } } if ( !(open(OUT1,">$file1"))) {&funlock;&error("($file1)ファイルOUTオープンエラー");} print OUT1 @saishin; close(OUT1); &funlock; #ファイルロック解除 } ########## チェック2処理 ################################################ sub check2{ if ($FORM{'no'} eq "") {&error("no.を入力してください");} if ($FORM{'pass'} eq "") {&error("パスワード【flexflex】半角8文字を入力してください");} $no = $FORM{'no'}; $pass = $FORM{'pass'}; } ########## チェック3処理 ################################################ sub check3{ if ( $FORM{'pass'} eq "") {&error("パスワード【flexflex】半角8文字を入力してください");} $pass = $FORM{'pass'}; if ($kanripass ne $pass) { if ($toukoupass ne $pass) {&error("パスワードが違います。");} } } ########## 削除処理 ###################################### sub logdel { &fllock; #ファイルロック if ( !(open(IN1,"$file1"))) {&funlock; &error("($file1)ファイルINオープンエラー");} @llog = ; close(IN1); @saishin = (); $umflg = 0; foreach $wkllog (@llog) { $wkllog =~ s/\n//g; $delflg = 0; ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$wkllog); if ($no eq $lno) { $umflg = 1; if ($kanripass eq $pass) { $delflg = 1; }else {&funlock;&error("パスワードが違います。");} } if ($delflg == 0) { push(@saishin,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); } } if ($umflg == 0) {&funlock;&error("no.がありません。");} @saishin2 = (); foreach $wkllog (@saishin) { $wkllog =~ s/\n//g; $delflg = 0; ($lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,$dmy) = split(/,/,$wkllog); if ($no eq $lresno) { $delflg = 1; } if ($delflg == 0) { push(@saishin2,"$lno,$lresno,$ltoday,$lsecd,$lname,$lurl,$lmail,$lhost,$licon,$lmojicol,$lmes,$letc1,$letc2,$letc3,$letc4,$letc5,$letc6,\n"); } } if ( !(open(OUT1,">$file1"))) {&funlock;&error("($file1)ファイルOUTオープンエラー");} print OUT1 @saishin2; close(OUT1); &funlock; #ファイルロック解除 } ################アクセス制限#################### sub acdgcheck { foreach $wkdgaddr (@DGADDR) { if ($wkdgaddr) { $wkdgaddr =~ s/\*/\.\*/g; if ($host =~ /$wkdgaddr/) { &error("アクセスできません。"); exit; } } } }