前提・実現したいこと
PHP初心者です。
簡易掲示板を作成しているのですが、削除機能を実装したいです。
本来ならば、削除ボタンから、投稿された、数字以外の要素を、ブラウザ上で表示したいのですが、削除ボタンを押すと、名前とコメントが空白で、投稿された時の状態の項目が、増えて更新されます。
色々ググってコードを書いてみましたが、うまくいかないので、教えていただきたいです。
該当のソースコード
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>簡易掲示板</title> </head> <body> <h1>簡易掲示板</h1> <form action="mission0002.php" method="POST"> message:<input type="text" name="comment"> user:<input type="text" name="name"> <input type="submit" value="投稿"></br></br> delete no:<input type"text" name="deleteno"> <input type="submit" value="削除"> </form> <?php$dataFile ='mission0002.txt';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$comment = ($_POST['comment']); $name = ($_POST['name']); $postedAt = date('Y年m月d日 H:i:s'); $newData = (sizeof(file($dataFile)) + 1)."<>".$name."<>".$comment."<>".$postedAt. "\n"; $fp = fopen($dataFile,'a'); fwrite($fp, $newData); fclose($fp);
}
$file=file("mission0002.txt"); // ファイルの内容を配列に格納 foreach( $file as $value ){ $line = explode("<>",$value); echo $value."<br />\n"; // 改行しながら値を表示
}
//削除
if(isset($_POST["deleteno"])) {
$delete = $_POST["deleteno"]; $delCon = file("mission0002.txt"); $a = fopen("mission0002.txt", "w"); @fwrite($a, ""); fclose($a); for ($j = 0; $j < count($delCon); $j++) { $delDate = explode("'<>'", $delCon[$j]); array_splice($delDate,1); if ($delDate[0] != $delete) { $b = fopen("mission0002.txt", "a"); @fwrite($b, $delCon[$j]); fclose($b); } elseif ($delDate[0] == $delete) { $c = fopen("mission0002.txt", "a"); @fwrite($c, "消去しました。\n"); fclose($c); } }
})
?>