前提・実現したいこと
HTMLとPHPで簡易掲示板を作っています。
パスワードと投稿番号が削除用フォームに入力されたものと一致するときに、投稿削除をできるようにしたいです。
発生している問題・エラーメッセージ
Warning: fwrite(): supplied resource is not a valid stream resource in /public_html/m3/m3-05.php on line 146 Warning: fclose(): supplied resource is not a valid stream resource in /public_html/m3/m3-05.php on line 155
該当のソースコード
PHP
1//fileには順番に投稿番号、名前、コメント、日付、パスワードが<>で区切られて書き込まれています。 2//$dnumと$dpassは削除用フォームに書き込まれた投稿番号とパスワードです。 3elseif(!empty($_POST["dnum"]) && !empty($_POST["dpass"])){ 4 $dnum = $_POST["dnum"]; 5 $dpass = $_POST["dpass"]; 6 $filename = "m3-05.txt"; 7 $lines = file($filename,FILE_IGNORE_NEW_LINES); 8 $fp = fopen($filename,"w"); 9 foreach($lines as $line){ 10 $item = explode("<>",$line."<br>"); 11 if($item[0] == $dnum){ 12 if($item[4] == $dpass){ 13 fwrite($fp,"\n"); 14 } 15 else{ 16 fwrite($fp,$line.PHP_EOL); 17 } 18 } 19 else{ 20 fwrite($fp,$line.PHP_EOL); 21 } 22 fclose($fp); 23 }
試したこと
if($item[0] == $dnum && $item[4] == $dpass)のように投稿番号とパスワードを同時に確認した場合には正常に動作しました。
そのため、アクセス権の問題ではないと思います。
ただその場合、投稿とパスワードが誰のものかに関わらず、2つがファイル内に存在すれば削除できるようになってしまった(自分のパスワードで他の人の投稿を削除できる)ため、現在の形を試しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/03 12:57
2021/10/03 13:08 編集
2021/10/03 13:10
2021/10/03 13:18