############################# # 12chスクリプト #  書込み確認画面の作成 # #*)クッキーの有効期限は1日にしました # ############################# # #1)私もまだ、使い込んでいません # 自己責任でお使いください #2)サポートは # http://pc8.2ch.net/test/read.cgi/hp/1148148318/l50 # http://bbs.mitinoku.jp/m_support/ #3) # ############################ # # V2.0 200612011 bbs.cgiの直接投稿の禁止処理(SPAM対策) # V1.1 20061101 JavaスクリプトOFFの人への注意書き表示 # V1.0 20061024 # ############################ # 【Step0】bbs.cgi より 下記を見つける ------------------ require 'lib.pl'; ------------------ この下に 下記を追加  123450123は簡易の暗号化のつもり お好きな数字8桁に変更 #------------------ $angou_t = 123450123; #煽り用簡易暗号化数 Agree_12ch #------------------ 【Step1】bbs.cgi より 下記を見つける ------------------ # レスカキコミ処理 else { ------------------ この下に 下記を追加 ------------------ # if($ENV{'HTTP_COOKIE'} eq "" && $FORM{mode} ne 'i'){ if(( $ENV{'HTTP_COOKIE'} !~ /KAKUNIN/) && $FORM{mode} ne 'i'){ Agree_12ch($angou_t); } #確認画面の表示時間 24時間(3600*24=86400)以上古い場合 BOT・SPAM if ($tkey_wkt ne ''){ $agree_opentime = $tkey_wkt-$angou_t; #確認画面の表示時間 $agree_opentime = $now - $agree_opentime; # Error('時間経ち杉?') if ($agree_opentime>86400); if ($agree_opentime>86400){ open (OUT, ">> $denyhost"); #deny_hostとして自動登録 print OUT $userhost."\n"; close OUT; $auto_ban = 'ALL_Baned_TimeOVER '; open (OUT, ">> ./log/dust.bak"); print OUT " " .$auto_ban ."\f" .$bbs. "-" .$key. "\f_URL_" .$FORM{url} . "\f" .$userhost." ".$ENV{'HTTP_REFERER'}. "\f" .$filesorce. "\f".'d'; close OUT; Error('時間経ち杉..') ; } } ------------------ 【Step2】lib.pl の最下部に下記を追加 #-------------------------------------------- #書き込み&クッキー確認画面 # sub Agree_12ch { my $angou = $_[0]; #簡易暗号化数 my $dem = '.'; $comment_agree = $FORM{comment}; $comment_agree =~ s/\0/\n/g; $check_time = $now + $angou; print <<"EOF"; Content-type: text/html 書き込み&クッキー確認画面 書きこみ&クッキー確認

名前 : E-mail(省略可) :


投稿確認
・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。
・投稿者は、掲示板運営者あるいはその指定する者に対して、著作者人格権を一切行使しないことを承諾します。
・投稿者は、投稿された内容及びこれに含まれる知的財産権、(著作権法第21条ないし第28条に規定される権利も含む)その他の権利につき(第三者に対して再許諾する権利を含みます。)、掲示板運営者に対し、無償で譲渡することを承諾します。ただし、投稿が別に定める削除ガイドラインに該当する場合、投稿に関する知的財産権その他の権利、義務は一定期間投稿者に留保されます。
・投稿者は、広告の投稿に関して、相応の費用を支払うことを承諾します。
・投稿者は、掲示板運営者が指定する第三者に対して、一切の権利(第三者に対して再許諾する権利を含みます)を許諾しないことを承諾します。
・掲示板運営者は、投稿者に対して日本国内外において無償で非独占的に複製、公衆送信、頒布及び翻訳する権利を投稿者に許諾します。

荒らし防止の為、クッキーを設定していないと書きこみできないようにしています。トウコウできない場合

Agreement ver1.3 EOF exit; } #------------------------------------------- 【Step3】lib.pl の下記を変更 ---(改行が無いかもしれません)------ function setCookie(formobj) { var newname = formobj.elements["name"].value; var newmail = formobj.elements["mail"].value; var getdate = "expires=Thu, 7-Jan-2020 00:00:00 GMT; path=/;"; document.cookie = "NAME=" + escape(newname) + "; " + getdate; document.cookie = "MAIL=" + escape(newmail) + "; " + getdate; return(true); } function setCookie(formobj) {var newname = formobj.elements["name"].value; var newmail = formobj.elements["mail"].value; var getdate = "expires=Thu, 7-Jan-2020 00:00:00 GMT; path=/;"; document.cookie = "NAME=" + escape(newname) + "; " + getdate; document.cookie = "MAIL=" + escape(newmail) + "; " + getdate; return(true);} ------------------------------------ を 下記に変更  ------------------------------------ function setCookie(formobj) {myKN = getCookie("KAKUNIN"); if (myKN == "OK"){var newname = formobj.elements["name"].value; var newmail = formobj.elements["mail"].value; kigen = new Date(); kigen.setTime(kigen.getTime() + (1 * 1000 * 60 * 60 * 24)); stkigen = kigen.toGMTString(); var getdate = "expires=" + stkigen + "; path=/;"; document.cookie = "NAME=" + escape(newname) + "; " + getdate; document.cookie = "MAIL=" + escape(newmail) + "; " + getdate; return(true);}} ----------------------------------------- 【Step4】lib.pl の 変数の追加 ----------------------------------------- # 共通変数設定 sub SetValue { ----------------------------------------- の下に下記2行を追加 ----------------------------------------- $name_agree = $FORM{name}; $tkey_agree = $FORM{key}; $tkey_wkt = $FORM{wkt}; ----------------------------------------- 【Step5】base.html ----------------------------------------- function setCookie(formobj) { var newname = formobj.elements["name"].value; var newmail = formobj.elements["mail"].value; var getdate = "expires=Thu, 7-Jan-2020 00:00:00 GMT; path=/;"; document.cookie = "NAME=" + escape(newname) + "; " + getdate; document.cookie = "MAIL=" + escape(newmail) + "; " + getdate; return(true); } ----------------------------------------- を 下記に変更する ----------------------------------------- function setCookie(formobj) {myKN = getCookie("KAKUNIN"); if (myKN == "OK"){var newname = formobj.elements["name"].value; var newmail = formobj.elements["mail"].value; kigen = new Date(); kigen.setTime(kigen.getTime() + (1 * 1000 * 60 * 60 * 24)); stkigen = kigen.toGMTString(); var getdate = "expires=" + stkigen + "; path=/;"; document.cookie = "NAME=" + escape(newname) + "; " + getdate; document.cookie = "MAIL=" + escape(newmail) + "; " + getdate; return(true);}} ----------------------------------------- 【Step6】スキンを使用して場合 skin/****.html を、Step3と同様にする。 【Step7】確認!! read.cgi の最も下のほう ---------------------------------------------- else { $html .= <<"HTML";
新着レスの表示

・・・ ----------------------------------------------- ここの