投稿フォームの下に投稿内容を表示して削除機能で指定した番号だけを削除したいのですが、すべて消えてしまいます。どこを直せばいいのか教えていただけないでしょうか。
コード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>mission_3-3</title> </head> <body> <form action="" method="post"> <input type="text" name="name" placeholder="名前"> <input type="text" name="comment" placeholder="コメント"> <input type="submit" name="submit"> <br> <br> <input type="text" name="delete" placeholder="削除番号" value=""> <input type="submit" name="delete" value="削除"> </form> <?php $name = $_POST["name"]; $comment = $_POST["comment"]; $date = date("Y/m/d H:i:s"); $delete = $_POST["delete"]; $filename = "mission_3-2.txt"; if(!empty($name && $comment)){ if (file_exists($filename)) { $num = count(file($filename))+1; } else { $num = 1; } $fp = fopen($filename, "a"); $newdata = ($num ."<>" .$name ."<>" .$comment ."<>" .$date ."\n"); fwrite($fp, $newdata); fclose($fp); } elseif(!empty($delete) && file_exists($filename)){ $lines = file($filename, FILE_IGNORE_NEW_LINES); foreach($lines as $line){ $line_div = explode("<>", $line); } $delfp = fopen($filename, "w"); if($delete == $line_div[0]){ fwrite($delfp, "削除済み\n"); } fclose($delfp); } $arrays = file($filename); for($i=0; $i<count($arrays); ++$i){ $array = explode("<>", $arrays[$i]); foreach($array as $str){ echo $str." "; } echo "<br>"; } ?> </body> </html>
削除機能をどう設計して、どう実装しようとしているのか、PHPのコードを書く前に日本語ででも説明してみてください。
回答2件
あなたの回答
tips
プレビュー