タグで直接表示するかどうか 1 で表示 0 で表示しない $show_img = 1; # 同一ホストからの連続投稿を制限 # --> 秒数を記述するとその時間以上を経過しないと連続投稿できない $w_regist = 30; # 管理者が許可した画像のみ表示(チェックしてから:1,すべて表示:0) $ImageCheck = 1; # 上で1の場合、チェックされてない画像の代替画像 $IconSoon = './soon.gif'; # 画像ファイルの最大表示の大きさ(単位:ピクセル) # --> これを超える画像は縮小表示します $MaxW = 250; # 横幅 $MaxH = 100; # 縦幅 # アップロード可能な最大サイズ(単位 : KB) # -->PHP3.iniまたはphp3_upload_max_filesizeによりますが、 # デフォルト値である2メガ以上は設定できません。 $maxbyte = 150; # 時差(hour) $jisa = 0; //---------設定ここまで-------------- $maxsize = $maxbyte * 1024; //バイトに変換 function head(&$dat){ //ヘッダー表示部 global $mode,$no,$PHP_SELF,$logfile,$maxsize,$MaxW,$MaxH,$title; if($mode == "resmsg"){ //レスの場合 $res = file($logfile); $flag = 0; while (list($key, $value) = each ($res)) { list($rno,$date,$name,$mail,$sub,$com,$url) = explode("<>", $value); if ($no == "$rno"){ $flag=1; break; } } if ($flag == 0) error("該当記事が見つかりません"); $sub = ereg_replace("^Re", "", $sub); $r_sub = "Re:[$no] $sub"; $r_com = "> $com"; $r_com = eregi_replace("
","\r> ",$r_com); } $dat=' '.$title.'

'.$title.'


[トップに戻る] [ワード検索] [管理用]
おなまえ
Eメール
題  名
メッセージ
URL
添付File
削除キー (記事の削除用。英数字で8文字以内)
  • 添付可能ファイル : GIF, JPG, PNG
  • ブラウザによっては正常に添付できないことがあります。
  • 最大投稿データ量は '.$maxbyte.'KB までです。
  • 画像は横 '.$MaxW.'ピクセル、縦 '.$MaxH.'ピクセルを超えると縮小表示されます。

  • '; } function foot(&$dat){ //フッター表示部 global $PHP_SELF; $dat.='
    【記事削除】
    記事No 削除キー

    - GazouBBS -

    '; } function Main(&$dat){ //記事表示部 global $logfile,$page_def,$up_dir,$page,$PHP_SELF,$path,$IconSoon,$ImageCheck; $view = file($logfile); $logsize = sizeof($view); if(isset($page)) $start = $page; else $start = $logsize - 1; $end = $start - $page_def + 1; if($end < 0) $end = 0; for($s = $start;$s >= $end;$s--){ list($no,$date,$name,$mail,$sub,$com,$url, $host,$pw,$tail,$W,$H,$time2,$chk) = explode("<>", $view[$s]); if($url) { $url = "HOME"; } if($mail){ $name = "$name"; } $dat.="[$no] $sub "; $dat.="投稿者:$name 投稿日:$date "; $dat.="[Res]   $url
    "; $dat.="
    $com\n"; if (file_exists("$path$time2$tail")) { if ($ImageCheck && $chk != 1) { $dat.="

    "; } elseif ($W && $H) { $dat.="

    "; } else { $dat.= "

    "; } } $dat.="


    \n"; $p++; } //end for if(($logsize > $page_def) && ($p >= $page_def)){ $dat.="\n"; $dat.="\n
    "; $dat.="\n"; $dat.="
    \n"; } } function regist(){ //ログ書き込み global $name,$email,$sub,$com,$url,$MaxW,$MaxH,$REMOTE_HOST,$REMOTE_ADDR; global $pwd,$upfile,$html_url,$logfile,$jisa,$max,$w_regist,$path; # フォーム内容をチェック if(empty($com)){ error("本文が書き込まれていません"); } if(empty($sub)){ error("タイトルが記入されていません"); } $times = time(); $check = file($logfile); $tail = sizeof($check); $last = $tail - 1; list($tno,$tdate,$tname,$tmail,$tsub,$tcom, $turl,$thost,$tpw,$ttail,$tw,$th,$ttime) = explode("<>", $check[$last]); if($name == $tname && $com == $tcom) error("二重投稿は禁止です"); if ($w_regist && $times - $ttime < $w_regist) error("連続投稿はもうしばらく時間を置いてからお願い致します"); # 記事Noを採番 $no = $tno + 1; # ホスト名を取得 $host = $REMOTE_HOST; $addr = $REMOTE_ADDR; if($host == "" || $host == $addr) $host=gethostbyaddr($addr); # 削除キーを暗号化 if ($pwd) { $PW = crypt(($pwd),aa); } # URL自動リンク // if ($autolink) { auto_link($com); } # 最大記事数処理 if ($max < $tail) { $del = file($logfile); $top = $tail - $max; for($j=$top; $j<=$tail; $j++){ list($no,$date,$name,$mail,$sub,$com, $url,$host,$pw,$ex,$w,$h,$tim)= explode("<>", $del[$j]); if (file_exists("$path$tim$ex")){ unlink("$path$tim$ex"); } $dp = fopen ($logfile,"w");flock($dp,2); fputs($dp, $del[$j]);flock($dp,3); fclose($dp); } } $now = date( "Y/m/d(D) H:i",mktime()+$jisa*60*60); $url = ereg_replace( "^http://", "",$url); $sub = htmlspecialchars($sub); $sub = stripslashes($sub); $name = htmlspecialchars($name); $name = stripslashes($name); $com = htmlspecialchars($com); $com = stripslashes($com); $com = str_replace( "\r\n", "\r", $com); //改行文字の統一。 $com = str_replace( "\r", "\n", $com); $com = ereg_replace("\n(( | |\t)*\n){3,}","\n",$com);//連続する空行を一行 $com = nl2br($com); //改行文字の前に
    を代入する。 $com = ereg_replace( "\n", "", $com); //\nを文字列から消す。 if ($upfile) { $size=UpFile(); $W=$size[0];$H=$size[1]; switch($size[2]) { case 1: $ext = ".gif"; break; case 2: $ext = ".jpg"; break; case 3: $ext = ".png"; break; } # 画像表示縮小 if ($W > $MaxW || $H > $MaxH) { $W2 = $MaxW / $W; $H2 = $MaxH / $H; if ($W2 < $H2) { $key = $W2; } else { $key = $H2; } $W = (int) $W * $key; $H = (int) $H * $key; } } $new_msg="$no<>$now<>$name<>$email<>$sub<>$com<>$url<>$host<>$PW<>$ext<>$W<>$H<>$times<><>\n"; $fp = fopen($logfile,"a"); flock($fp,2); fputs($fp, $new_msg); flock($fp,3); fclose($fp); # メール通知処理 // if ($mailing == 1) { mail_to(); } } function UpFile(){ //アップロード処理 global $up_dir,$upfile,$upfile_name,$path; $source = $upfile; $source_name = $upfile_name; if(($source <> "none")&&($source <> "")){ if($uperror <> 1){ $dest = $path.$source_name; if(copy($source,$dest)){ echo "成功"; $imagesize = getimagesize($dest); switch($imagesize[2]) { case 0: error("画像以外はアップロードできません"); unlink($dest); exit; case 1: echo " $imagesize[0] x $imagesize[1]
    "; $newname = $path; $newname .=time() . ".gif"; if(copy($dest,$newname)) { echo "GIF アップ成功
    $newname"; } else { error("GIF リネームに失敗"); } unlink ($dest); break; case 2: echo "$imagesize[0] x $imagesize[1]
    "; $newname = $path; $newname .=time() . ".jpg"; if(copy($dest,$newname)) { echo "JPG アップ成功
    $newname"; } else { error("JPG リネームに失敗"); } unlink ($dest); break; case 3: echo "$imagesize[0] x $imagesize[1]
    "; $newname = $path; $newname .=time() . ".png"; if(copy($dest,$newname)) { echo "PNG アップ成功
    $newname"; } else { error(" PNG リネームに失敗"); } unlink ($dest); break; } } else { error("Upload ディレクトリに書きこみ失敗\n"); $uperror = 1; } } unlink($source); } return $imagesize; } function usrdel(){ //ユーザー削除 global $pwd,$no,$logfile,$path; if ($no == "" || $pwd == "") { error("削除Noまたは削除キーが入力モレです"); } $logall = file($logfile); $flag=0; while(list(,$lines)=each($logall)){ list($o_no,$date,$name,$mail,$sub,$com,$url,$host,$pw,$tail,$w,$h,$o_tim) = explode("<>",$lines); if ($no == "$o_no") { $flag=1; $PWD=$pw; $upfile="$o_tim$tail"; } else { $pushlog[]=$lines; } } if ($flag == 0) { error("該当記事が見当たりません"); } if ($PWD == "") { error("該当記事には削除キーが設定されていません"); } # 削除キーを照合 $match = crypt(($pwd),aa); if ($match != $PWD) { error("削除キーが違います"); } # ログを更新 $fp = fopen($logfile,"w"); flock($fp,2); while(list(,$val)=each($pushlog)){ fputs($fp,$val); } flock($fp,3); fclose($fp); if(file_exists("$path$upfile")){ unlink("$path$upfile"); } } function admin(){ //管理機能 global $admin_pass,$PHP_SELF,$logfile,$path,$ImageCheck,$up_dir; global $del,$pass,$chk; if ($pass && $pass != "$pass") { error("パスワードが違います"); } ?> $title"; echo ""; echo "[掲示板に戻る]\n"; echo "
    \n"; echo "管理モード\n"; echo "
    \n"; if (!$pass) { echo "

    パスワードを入力して下さい

    \n"; echo "
    \n"; echo "\n"; echo ""; echo "
    \n"; }else { # 画像許可 if ($chk) { # 画像情報をマッチングし更新 $logall = file($logfile); while(list(,$lines)=each($logall)){ list($no,$date,$name,$mail,$sub,$com,$url,$host,$pw,$tail,$w,$h,$o_tim,$check) = explode("<>",$lines); if ($chk == "$no") { $lines="$no<>$date<>$name<>$mail<>$sub<>$com<>$url<>$host<>$pw<>$tail<>$w<>$h<>$o_tim<>1<>"; } $pushlog[]=$lines; } # ログを更新 $fp = fopen($logfile,"w"); flock($fp,2); while(list(,$val)=each($pushlog)){ fputs($fp,$val); } flock($fp,3); fclose($fp); } # 削除処理 if ($del) { # 削除情報をマッチングし更新 $delall = file($logfile); while(list(,$delline)=each($delall)){ $flag = 0; list($no,$date,$name,$mail,$sub,$com,$url,$host,$pw,$tail,$w,$h,$time) = explode("<>",$delline); if ($del == "$no") { $flag = 1; if (file_exists("$path$time$tail")){ unlink("$path$time$tail");} } if($flag == 0){ $dellog[]=$delline; } } # ログを更新 $fp = fopen($logfile,"w"); flock($fp,2); while(list(,$val)=each($dellog)){ fputs($fp, $val); } flock($fp,3); fclose($fp); } # 削除画面を表示 echo "
    \n"; echo "\n"; echo "\n"; echo "

    削除したい記事のチェックボックスにチェックを入れ、削除ボタンを押して下さい。\n"; echo "

    \n"; echo ""; echo ""; if ($ImageCheck) { echo ""; } echo "\n"; $delmode = file($logfile); while (list(,$val)=each($delmode)){ $img_flag=0; list($no,$date,$name,$mail,$sub,$com,$url, $host,$pw,$tail,$w,$h,$time,$chk) = explode("<>",$val); list($date,$dmy) = split("\(", $date); if ($mail) { $name="$name"; } $com = str_replace("
    ","",$com); $com = htmlspecialchars($com); if(strlen($com) > 40){ $com = substr($com,0,38) . " ..."; } if (file_exists("$path$time$tail")) { $img_flag = 1; $clip = "画像"; $size = filesize("$path$time$tail"); $all += $size; } else { $clip = ""; $size = 0; } echo ""; echo ""; echo ""; echo "\n"; # 画像許可 if ($ImageCheck) { if ($img_flag == 1 && $chk == 1) { echo ""; } elseif ($img_flag == 1 && $chk != 1) { echo ""; } else { echo ""; } } echo "\n"; } echo "
    削除記事No投稿日題名投稿者コメントホスト名添付
    (Bytes)
    画像
    許可
    $no$date$sub$name$com$host$clip
    ($size)
    OK
    \n"; echo "

    "; echo "

    \n"; $all = (int)($all / 1024); echo "【添付デ?[タ総数 : $all KB】\n"; } echo "
    \n"; echo "\n"; exit; } function MakeHtml(){ //HTML生成 global $html_file; head($buf); Main($buf); foot($buf); $hp = fopen ($html_file,"w"); flock($hp,2); fputs($hp, $buf); flock($hp,3); fclose($hp); include("$html_file"); exit; } function error($mes){ //エラーフォーマット ?>