前提・実現したいこと
ここに質問の内容を詳しく書いてください。
プログラミング初心者です。PHP掲示板の投稿の削除機能を搭載したいです。
フォームを作り、「削除対象番号」を入力し、「削除」ボタンを押すと、投稿すべてが消えてしまいます。原因が何か分からないです。
発生している問題・エラーメッセージ
エラーメッセージ
Warning: end() expects parameter 1 to be array, null given in /public_html/mission_3-3.php on line 73
Notice: Undefined variable: fp in /public_html/mission_3-3.php on line 80
Warning: fclose() expects parameter 1 to be resource, null given in /public_html/mission_3-3.php on line 80
該当のソースコード
<html> <head> <title>3-3</title> <meta charset="utf-8"> </head> <body> <form action="mission_3-3.php" method="post">ソースコード
<?php $filename="mission_3-3.txt"; //■投稿機能 if(!empty($_POST["name"])and !empty($_POST["comment"])) { if(!isset($_POST["name"])) { echo "名前を入力してください!"; }; if(!isset($_POST["comment"])) { echo "コメントを入力してください!"; }; //■ファイルがあるかどうかの確認 $toukou_number=1; $name=$_POST["name"]; $date=date("Y年m月d日 H:m:s"); $comment=$_POST["comment"]; if(file_exists($filename)) { $text_file = file($filename);//ファイルがあったら、ファイルを配列化する $last_toukou=end($text_file);//最後の投稿の要素を取り出す $divide_end_number=explode("<>",$last_toukou);//最後の投稿の要素を、さらに<>で分割する $toukou_number=(int)$divide_end_number[0]+1;//投稿番号の部分を取り出し、投稿番号が「最後の投稿の番号+1」の数になるように設定 } else { $toukou_number=1;//ファイルがなかったら「投稿番号=1」 }; $toukou=$toukou_number."<>".$name."<>".$comment."<>".$date; $fp=fopen($filename,"a"); fwrite($fp,$toukou."\n"); fclose($fp); }; //■削除機能 if(!empty($_POST["delete"])) { $fp_w=fopen($filename,"w"); fclose($fp_w); $fp_a=fopen($filename,"a"); for($value_2=0;$value_2<end($text_file); $value_2++) { $divide_toukou=expode("<>",$value_2); if($divide_toukou[0]!==$_POST["delete"]) { fwrite($fp_a,$toukou.\n); }; };fclose($fp); }; $filename="mission_3-3.txt"; $lines=file($filename); foreach($lines as $line) { echo $line[0]."".$line[1]."".$line[2]."".$line[3]."<br>"; }; ?> </body> </html>名前<br> <input type="text" name="name" value=""><br> <br>コメント<br> <textarea name="comment" cols="30" rows="8"></textarea><br> <input type="submit" name="submit" value="送信"><br> <br><br>削除対象番号:<br> <input type = "text" value = "" name = "delete"><br> <br><input type = "submit" value = "削除"><br> </form>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー