Q&A
現在phpを用いた掲示板を作成しているのですが、指定した番号のコメントを編集する機能がどうしても実装できません。
改善点を教えて頂けると嬉しいです。
<html> <body> <form action="keijiban.php" method="post"> 名前<input type="text" name="name" ><br /> コメント<input type="text" name="comment"><br /> <br /> <input type="submit" value="送信" /> </form> <form action="" method="POST"> 削除対象番号<input type="text" name="deleteNo"> <input type="submit" name="delete" value="削除"> </form> <form method="POST" action="<?php echo($_SERVER['PHP_SELF']) ?>"> <label for="edit">編集対象番号</label><br> <input type="text" name="edit"><br> <input type="submit" value="編集する"> </form> <?php $filemei = 'keijiban.txt'; $line = file($filemei); $lastline = explode("<>", $line[count($line)-1]); $num = $lastline[0] + 1; $str = $num. '<>' . $_POST['name'] . '<>' . $_POST['comment'] . '<>' . date('Y-m-d-H-i-s') . "\n"; if (isset($_POST["delete"])) { $delete = $_POST["deleteNo"]; $delCon = file("keijiban.txt"); for ($j = 0; $j < count($delCon) ; $j++){ $delData = explode("<>", $delCon[$j]); if ($delData[0] == $delete) { array_splice($delCon, $j, 1); file_put_contents($filemei, implode($delCon)); } } } $edit = $_POST['edit']; $edit = htmlspecialchars($edit); if (!empty($edit)) { $ediCon = file("keijiban.txt"); for ($k = 0; $k < count($ediCon) ; $k++) { $ediData = explode("<>", $ediCon[$k]); if ($ediData[0] == "{".$edit."}") { //$simEdit = explode("}<>{", $ediCon[$k]); for($h = 0; $h < count($ediData); $h++){ $simEdit[$h] = mb_substr(trim($ediData[$h]), 1, -1); } } } } $posts = file("keijiban.txt"); foreach($posts as $post){ list($num, $name, $message, $time) = explode("<>", $post); echo h($num); echo "<br>"; echo h($name); echo "<br>"; echo h($message); echo "<br>"; echo h($time); echo "<br>"; } function h($s) { return htmlspecialchars($s, ENT_QUOTES, "UTF-8", true); } $fp = fopen("keijiban.txt", "r"); fclose($fp); $fp = fopen('keijiban.txt','a'); fwrite($fp, $str); fclose($fp); ?> </body> </html> コード
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。