- ベストアンサー
ファイル書き込みが重複する
こんばんわです。 以下のスクリプトで 投稿データを時系列に新しい書込み順に表示させようとしているのですが、一度実行させると同じ投稿がいくつも表示されてしまうのです。ご回答お願いいたします。一部省略しています。 <?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>"; } ?>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (1)
- kaiwarepon
- ベストアンサー率49% (47/95)
お礼
ありがとうございました。新しい書込み順に表示させことができました。完全に理解するまで、もうちょっと時間がかかると思いますが アドバイス、ありがとうございます。