ファイル書き込みが重複する
こんばんわです。
以下のスクリプトで 投稿データを時系列に新しい書込み順に表示させようとしているのですが、一度実行させると同じ投稿がいくつも表示されてしまうのです。ご回答お願いいたします。一部省略しています。
<?php
if($name== "" or $body == ""){
echo '<font color = "#FF000">必須項目入力エラー</font><br>';
echo 'お名前と本文は必ず入力してください<br>';
echo '<a href = "javascript:history.back()">戻る</a>';
}
$body = substr($body, 0, 1000);
$body = str_replace("\r\n", "<br>", $body);
$dt = date("y/m/d H:i:s");
$data = file("data.txt");
$file = fopen("data.txt", "w");
fwrite($file, "$name\t$mail\t$body\t$dt\n");
$i = 1;
foreach ($data as $value) {
if($i < 30) {
fwrite($file, "$value");
$i++;
}
}
fclose($file);
}
echo '
subject03-BBS
<h1>subject-BBS</h1>
<form method="post" action="subject03.php" >
お名前 <input type="text" size="20" maxlength="40" name="NAME">
メール <input type="text" size="30" maxlength="60" name="MAIL">
<p>本文<br></p>
<textarea rows="20" cols="80" wrap="soft" name="BODY"></textarea>
<p><input type="submit" name="SUBMIT" value="送信"><p/>
</form>
';
$data = file("data.txt");
foreach($data as $value){
$view = explode("\t",$value);
if($mail== ""){
echo "お名前:$name$view[3]<br>";
}
else{
echo "お名前:<a href=\"mailto:$mail\">$name</a>$view[3]<br>";}
echo "本文:$body<br>";
}
?>