#ログ保存数を設定 $data_max=30; $page_max=10; #データファイルを設定 $data_file="onebbs2.txt"; #メイン処理 switch($mode){ case 'reg': reg(); break; case 'delete': delete($pass); break; default: html_view(); break; } #新しいコメントが追加されたら function reg(){ global $pass,$comment,$data_file,$data_max; if(!$comment){error("コメントを入力してください。");} if(!$pass){error("パスワードを入力してください。");} $PW = crypt(($pass),abc); #パスワードを暗号化する $comment= htmlspecialchars ($comment);#タグの無効化 $data_all = file($data_file);#データファイルを一行づつ読み込み $fp = @fopen($data_file,"w") or die("ログファイルが開けません"); flock($fp,LOCK_EX); #新しいコメントをデータとして整形 $top_no =explode (",",$data_all[0]); $new_no =$top_no[0]; $new_no++; $new_data = "$new_no,$comment,$PW\n"; fwrite($fp,$new_data); #新しいコメントを書き込み for ($i=0; $i<$data_max;$i++){ fwrite($fp,$data_all [$i]);#古いコメント書き込み } flock($fp,LOCK_UN); fclose($fp); html_view(); } #削除処理 function delete($del_pass){ global $del_no,$data_file,$data_max; if(!$del_no){error("削除NOを入力してください。");} if(!$del_pass){error("パスワードを入力してください。");} $del_no = mb_convert_kana($del_no,"n");#全角数字を半角に変換 $data_all = file($data_file);#データファイルを一行づつ読み込み for ($i=0; $i<$data_max;$i++){ $pdata = explode (",",$data_all[$i]); #カンマで振り分ける $pdata[2]= str_replace("\n","", $pdata[2]); #改行を削除 if($pdata[0] == $del_no){ $match_pass = crypt(($del_pass),abc); if($pdata[2] != "$match_pass"){error("パスワードが違います。");} if($pdata[2] == "$match_pass"){$p_flag=1;} } } if($p_flag ==1){ $fp = @fopen($data_file,"w")or die("ログファイルが開けません"); flock($fp,LOCK_EX); for ($i=0; $i<$data_max;$i++){ $pdata = explode (",",$data_all[$i]); if($pdata[0] != $del_no){#削除ナンバーとコメントナンバー以外 fwrite($fp,$data_all [$i]);#コメント書き込み直し } } flock($fp,LOCK_UN); fclose($fp); }else{error("削除NOが登録されていません。");} html_view(); } function html_view(){ global $data_file,$data_no,$data_all,$page_max,$data_max; echo '
';
#コメントの表示
$data_all = file($data_file);
if(empty($data_no)){
$data_no=0;
}
for( $i = 0; $i < $page_max ;$i++,$data_no++){
if(!empty($data_all[$data_no])){
$pdata = explode (",",$data_all[$data_no]);
echo "$pdata[0] =>$pdata[1]
\n" ;
}
}
echo '