ワケありますメニュー

data ディレクトリ、または conf.dat ファイルのパーミッションをご確認下さい。'); } $conf = array(); if ($fp = @fopen ("./data/conf.dat","r")){ flock ($fp,LOCK_SH); while (!feof ($fp)){ $read = fgets ($fp); $conf[] = str_replace ("\n","",$read); } flock ($fp,LOCK_UN); fclose ($fp); }else{ system_error ('設定ファイルの読取に失敗しました。
data ディレクトリ、または conf.dat ファイルのパーミッションをご確認下さい。'); } if (empty ($conf[0])){ system_error ('設定ファイルの読取に失敗しました。
最初にコントロールパネルより各種設定を行って下さい。'); } $page_max = $conf[25]; $log_max = $conf[26]; if ($log_max < 1){ system_error ('投稿内容の最大保存数が異常です。'); } if ($page_max < 1){ system_error ('1ページに表示される投稿内容数が異常です。'); } if ($conf[1] == 'http://'){ $conf[1] = ''; } if ($conf[3] == 'http://'){ $conf[3] = ''; } if ($conf[17] == 'http://'){ $conf[17] = ''; } if (!empty ($conf[2])){ $bgcolor = " bgcolor='$conf[2]'"; } if (!empty ($conf[3])){ $background = " background='$conf[3]'"; } if (!empty ($conf[4])){ $hrcolor = " color='$conf[4]'"; } if (!empty ($conf[5])){ $color = " color='$conf[5]'"; } if (!empty ($conf[6])){ $text = " text='$conf[6]'"; } if (!empty ($conf[23])){ $link = " link='$conf[23]' vlink='$conf[23]' alink='$conf[23]'"; } if (preg_match ("/[0-9]/",$conf[13]) > 0){ $margin1 = " topmargin='$conf[13]' bottommargin='$conf[13]' marginheight='$conf[13]'"; } if (preg_match ("/[0-9]/",$conf[14]) > 0){ $margin2 = " leftmargin='$conf[14]' rightmargin='$conf[14]' marginwidth='$conf[14]'"; } if (!empty ($conf[16])){ $width = " width='$conf[16]'"; } #-------------------------------------------------------------------------- # ヘッダー出力 #-------------------------------------------------------------------------- if (empty ($conf[1])){ print "$conf[0]"; } else { print ""; } print " EOM; }else if ($_POST[flg] == 2){ if (empty ($_POST[name])){ $err_array[] = 'お名前をご記入下さい。'; } if (empty ($_POST[subject])){ $err_array[] = '件名をご記入下さい。'; } if (empty ($_POST[message])){ $err_array[] = 'コメントをご記入下さい。'; } if ((!empty ($_POST[mail]))&&(preg_match ("/^[\w\-+_\.]+\@[\w\-_+]+\.[\w\-_+\.]+$/i",$_POST[mail]) != 1)){ $err_array[] = 'メールアドレスが正しくありません。'; } if (isset ($err_array[0])){ $err_msg = implode ("
",$err_array); error ($err_msg); } while ($key = key ($_POST)){ $_POST[$key] = mb_convert_encoding ($_POST[$key],"utf-8","auto"); $_POST[$key] = mb_convert_kana ($_POST[$key],"KV","utf-8"); $_POST[$key] = str_replace ("\t"," ",$_POST[$key]); $_POST[$key] = str_replace ("<","<",$_POST[$key]); $_POST[$key] = str_replace (">",">",$_POST[$key]); $_POST[$key] = preg_replace ("/\r\n|\n|\r/","
",$_POST[$key]); $_POST[$key] = str_replace ("\\\\","\\",$_POST[$key]); $_POST[$key] = str_replace ('\"','”',$_POST[$key]); $_POST[$key] = str_replace ("\'","’",$_POST[$key]); next ($_POST); } if (!@touch ("./data/lock.txt")){ error ('ロックファイルの作成に失敗しました。
data ディレクトリ、または lock.txt ファイルのパーミッションをご確認下さい。'); } if ($lock = @fopen ("./data/lock.txt","r")){ flock ($lock,LOCK_EX); $now = time(); $localtime = localtime($now); $localtime[5] = ($localtime[5] + 1900); $localtime[4]++; $time = sprintf ("%04d/%02d/%02d %02d:%02d:%02d",$localtime[5],$localtime[4],$localtime[3],$localtime[2],$localtime[1],$localtime[0]); $ip = $_SERVER['REMOTE_ADDR']; if ($fp = @fopen ("./data/check.dat","r")){ flock ($fp,LOCK_SH); $check = fgets ($fp); flock ($fp,LOCK_UN); fclose ($fp); } $check = explode (',',$check); if (($check[0] >= $now)&&($check[1] == $ip)){ error('二重書き込み防止のため、60秒以内の連続した書き込みは行えません。'); } $line = array(); if ($fp = @fopen ("./data/log.dat","r")){ flock ($fp,LOCK_SH); while (!feof ($fp)){ $read = fgets ($fp); if (!empty ($read)){ $line[] = $read; } } flock ($fp,LOCK_UN); fclose ($fp); }else{ error ("ログファイルの読取に失敗しました。
data ディレクトリ、または log.dat ファイルのパーミッションをご確認下さい。"); } $form = array(); $form[0] = $now; if ($conf[24] == 1){ $form[1] = 0; } else { $form[1] = 1; } $form[2] = $_POST[subject]; $form[3] = $_POST[name]; $form[4] = $_POST[mail]; $form[5] = $_POST[message]; $form[6] = $time; if ($conf[18] == 1){ $form[7] = $ip; } $write = implode ("\t",$form); if ($fp = @fopen ("./data/log.dat","w")){ flock ($fp,LOCK_EX); fputs ($fp,"${write}\n"); $log_max--; for ($i = 0; $i < $log_max; $i++){ fputs ($fp,$line[$i]); } flock ($fp,LOCK_UN); fclose ($fp); }else{ error ("ログファイルの書込に失敗しました。
data ディレクトリ、または log.dat ファイルのパーミッションをご確認下さい。"); } $check[0] = ($now + 60); $check[1] = $ip; $check = implode (',',$check); if ($fp = @fopen ("./data/check.dat","w")){ flock ($fp,LOCK_EX); fputs ($fp,$check); flock ($fp,LOCK_UN); fclose ($fp); } sleep(1); flock ($lock,LOCK_UN); fclose ($lock); }else{ error ("ロックファイルを開けませんでした。
data ディレクトリ、または lock.txt ファイルのパーミッションをご確認下さい。"); } #-------------------------------------------------------------------------- # 投稿完了画面出力 #-------------------------------------------------------------------------- if (!empty ($conf[22])){ print "
$conf[22]
"; } print <<
"; if ($_POST[flg] == 1){ //if (empty ($_POST[name])){ $err_array[] = 'お名前をご記入下さい。'; } if (empty ($_POST[name])){ $_POST['name'] = '名無しの権兵衛☆★'; } if (empty ($_POST[subject])){ $err_array[] = '件名は必須でつ。。'; } if (empty ($_POST[message])){ $err_array[] = 'コメント入れなきゃダメょ。'; } //if ((!empty ($_POST[mail]))&&(preg_match ("/^[\w\-+_\.]+\@[\w\-_+]+\.[\w\-_+\.]+$/i",$_POST[mail]) != 1)){ $err_array[] = 'メールアドレスが正しくありません。'; } if (isset ($err_array[0])){ $err_msg = implode ("
",$err_array); error ($err_msg); } while ($key = key ($_POST)){ $_POST[$key] = mb_convert_encoding ($_POST[$key],"utf-8","auto"); $_POST[$key] = mb_convert_kana ($_POST[$key],"KV","utf-8"); $_POST[$key] = str_replace ("<","<",$_POST[$key]); $_POST[$key] = str_replace (">",">",$_POST[$key]); $_POST[$key] = str_replace ("\\\\","\\",$_POST[$key]); $_POST[$key] = str_replace ('\"','”',$_POST[$key]); $_POST[$key] = str_replace ("\'","’",$_POST[$key]); next ($_POST); } $message = preg_replace ("/\r\n|\n|\r/","
",$_POST[message]); #-------------------------------------------------------------------------- # 確認画面出力 #-------------------------------------------------------------------------- if (!empty ($conf[21])){ print "
$conf[21]
"; } print <<
お名前 :$_POST[name]
Eメール :$_POST[mail]
件 名 :$_POST[subject]
コメント :${message}
 



EOM; }else{ if (!@touch ("./data/log.dat")){ error ('ログファイルの作成に失敗しました。
data ディレクトリ、または log.dat ファイルのパーミッションをご確認下さい。'); } $line = array(); if ($fp = @fopen ("./data/log.dat","r")){ flock ($fp,LOCK_SH); while (!feof ($fp)){ $read = fgets ($fp); $logs = array(); $logs = explode ("\t",$read); if ($logs[1] == 1){ $line[] = $read; } } flock ($fp,LOCK_UN); fclose ($fp); }else{ error ('ログファイルの読取に失敗しました。
data ディレクトリ、または log.dat ファイルのパーミッションをご確認下さい。'); } if (!empty ($_GET[subject])){ $subject = mb_convert_encoding ($_GET[subject],"utf-8","auto"); $subject = "Re: " . $subject; } if (!empty ($_GET[message])){ $message = mb_convert_encoding ($_GET[message],"utf-8","auto"); $message = "> " . $message; $message = str_replace ("
","\n> ",$message); } if ($conf[19] == 1){ $flg_val = 2; $btn_val = '書き込む'; } else { $flg_val = 1; $btn_val = '確認する'; } if (!empty ($conf[10])){ $size = " size='$conf[10]'"; } if (!empty ($conf[11])){ $cols = " cols='$conf[11]'"; } if (!empty ($conf[12])){ $rows = " rows='$conf[12]'"; } #-------------------------------------------------------------------------- # 掲示板画面出力 #-------------------------------------------------------------------------- if (!empty ($conf[20])){ print "
$conf[20]
"; } print <<

※件名とコメントは必須でつ!!

お名前 :
Eメール :
件 名 :
コメント :
 
EOM; $all = count ($line); if (empty ($_GET[s])){ $s = 0; } else { $s = $_GET[s]; } $bs = $s - 1; $ns = $s + 1; if ($all == 0){ $start = 0; } else { $start = ($s * $page_max) + 1; } if (($s * $page_max + $page_max) > $all){ $last = $all; } else { $last = $s * $page_max + $page_max; } if (($all - ($s * $page_max + $page_max)) > $page_max){ $next = $page_max; } else { $next = $all - ($s * $page_max + $page_max); } for ($i = 0; $i < $page_max; $i++){ $n = ($s * $page_max) + $i; if (!empty ($line[$n])){ $logs = array(); $logs = explode ("\t",$line[$n]); print <<
$logs[2]
投稿者: EOM; if (!empty ($logs[4])){ print "$logs[3]"; } else { print "$logs[3]"; } print <<
$logs[5]
EOM; print "$logs[6]"; if ((!empty ($logs[7]))&&($conf[18] == 1)){ print " [ $logs[7] ]"; } print <<
EOM; } } print <<
${all}件中 ${start}件~${last}件 EOM; if ($s > 0){ print ""; } print ''; if ($next > 0){ print ""; } print <<
<< 前の${page_max}件へ'; for ($i = 0; $i * $page_max < $all; $i++){ $n = $i + 1; if ($s == $i){ print " ${n} "; } else { print " ${n} "; } } print '次の${next}件へ >>

EOM; } #-------------------------------------------------------------------------- # フッター出力 #-------------------------------------------------------------------------- if (!empty ($conf[17])){ print <<
トップページへ


EOM; } print << EOM; function error ($err_mes){ #-------------------------------------------------------------------------- # エラー画面出力 #-------------------------------------------------------------------------- print <<
大変だ! ブラウザの戻るボタンでお戻って!!

${err_mes} EOM; exit(); } function system_error ($err_mes){ print << システムエラー

${err_mes}

EOM; exit(); } ?>