PHPで掲示板を作ろうと思っています。 そこで、削除機能の実装をしようと思い、以下のurlのように行ったのですが、ファイル内が全て削除されてしまいます。

PHP | プログラミング90閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

ThanksImg質問者からのお礼コメント

fileをfopenより先に実行することで思い通りになりました!ありがとうございました!

お礼日時:2021/11/25 4:07

その他の回答(2件)

0

というか(前述したURLを読む限り)投稿番号はファイルの行数ですよね?それで「行削除」なんかしたら、次に作成する投稿の番号が前のものと重複してしまいます。 1~5 の投稿があって 3 の投稿を削除したら、次の投稿に(最後のものと同じ)5 が割り当てられてしまいますよ。 #投稿番号用のカウンタファイルを使っていれば話は別ですが #そういうわけでもないようですし・・・ 「削除フラグを立てる」のが最適解だと思います(当然投稿データの末尾に削除フラグを置くように修正する)。

0

今どきデータを実際に削除するとかやめた方が良い。 例えばあなたの掲示板が違法なやりとりの連絡場所で使われた場合、捜査のなかでデータの提供を求められる可能性は無きにしも非ずで、その容疑者の投稿データが無かった場合は貴方自体の関与も疑われます。 なので今どきは掲示板のデータは削除するのではなく、非表示フラグを立てるべきです。 ちなみにファイルは rw モードで開くべき。 w モードで開いた瞬間、中身は空にされます。 w モードで開いたら読み込まれないわけで、for ループは実行されない。 そして閉じられるので、結果的に中身がすべて消える。