一言メッセージ掲示板 その2
一言メッセージの掲示板に削除機能をつけてみました。
ファイル名bbs02.phpを作成し、下のソースを貼り付けて設置します。 同じ階層に空のファイルlog.datを作成してパーミションを666にします。
ファイルの文字コードはSHIFT-JISで保存します。
ソース bbs02.php
<?php
#ログ保存数を設定
$data_max=10;
#データファイルを設定
$data_file="log.dat";
$comment=$_POST[comment];
$del_no=$_POST[del_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;
|
