一言メッセージ掲示板 その3
掲示板に1ページ内で表示するコメント数を設定できる機能をつけてみました。
ファイル名bbs03.phpを作成し、下のソースを貼り付けて設置します。 同じ階層に空のファイルlog.datを作成してパーミションを666にします。
ファイルの文字コードはSHIFT-JISで保存します。
ソース bbs03.php
<?php
#ログ保存数を設定
$data_max=30;
#一ページに表示するコメント数
$page_max=10;
#データファイルを設定
$data_file="log.dat";
$comment=$_POST[comment];
$del_no=$_POST[del_no];
$data_no=$_POST[data_no];
mb_language("Japanese");
mb_internal_encoding("SHIFT-JIS");
#新しいコメントが追加されたら
if(!empty ($comment)){
$comment= htmlspecialchars ($comment);#タグの無効化
$data_all = file($data_file);#データファイルを一行づつ読み込み
$fp = fopen($data_file,"w");
flock($fp,2);
#新しいコメントをデータとして整形
$top_no =explode (",",$data_all[0]);
$new_no =$top_no[0];
$new_no++;
$new_data = "$new_no,$comment\n";
fwrite($fp,$new_data); #新しいコメントを書き込み
for ($i=0; $i<$data_max;$i++){
fwrite($fp,$data_all[$i]);#古いコメント書き込み
}
flock($fp,3);
fclose($fp);
unset ($data_all);
}
elseif(!empty ($del_no)){
#削除ナンバーが入っていたら
$del_no = mb_convert_kana($del_no,"n");#全角数字を半角に変換
$data_all = file($data_file);#データファイルを一行づつ読み込み
$fp = fopen($data_file,"w");
flock($fp,2);
for ($i=0; $i<$data_max;$i++){
$pdata = explode (",",$data_all[$i]);
if($pdata[0] != $del_no){#削除ナンバーとコメントナンバー以外
fwrite($fp,$data_all[$i]);#コメント書き込み直し
}
}
flock($fp,3);
fclose($fp);
unset ($data_all);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
|
