前提・実現したいこと
PHPで簡易掲示板を作っています。
投稿番号を入力すると削除できる機能を実装したいと思っていて、作ったところ投稿フォームも送信されるような仕様になっています。
削除した番号は欠番にしたいです。
それぞれ別々でのPOSTができるようなシステムを作りたいです。
また、空欄で投稿されているみたいなので、空欄の際はPOSTできないような機能も実装したいです。
エラーメッセージ Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/000.com/public_html/mission_2-3.php on line 63
該当のソースコード
PHP
1<?php 2 $filename = 'keiziban.txt'; 3 ini_set('display_errors', "On"); 4 function h($s) { 5 return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); 6 }; 7 if ($_SERVER['REQUEST_METHOD'] == 'POST') { 8 $name = $_POST['name']; 9 $comment = $_POST['comment']; 10 $time = date('Y年m月d日 H時i分s秒'); 11 if (file_exists($filename)) { 12 $number = count(file($filename))+1; 13 } else { 14 $number = 1; 15 } // ファイルがあれば、番号は+1した値を代入、なかったら、番号は1 16 17 $datalist = $number."<>"."\t".$name."<>"."\t".$comment."<>"."\t".$time."\n"; 18 $fp = fopen($filename, 'a'); 19 fwrite($fp, $datalist); 20 fclose($fp); 21 } 22?> 23<!DOCTYPE html> 24<html lang="ja"> 25 <head> 26 <meta charset="utf-8"> 27 <title>keiziban</title> 28 </head> 29 <body> 30 <form action="" method="post"> 31 名前: <input type="text" name="name"> 32 コメント: <input type="text" name="comment"> 33 <input type="submit" value="送信"> 34 35 </form> 36 <form action="" method="post"> 37 削除対象番号:<input type="text" name="delete"> 38 <input type="submit"value="送信"> 39 </form> 40 <?php 41 if (file_exists($filename)) { 42 $datalists = file($filename); 43 foreach ($datalists as $value) { 44 list($number, $name, $comment, $time) = explode("<>", $value); 45 echo h($number); 46 echo h($name); 47 echo h($comment); 48 echo h($time); 49 echo nl2br("\n"); 50 } 51 }else{ 52 echo "コメントが1件もありません"; 53 } 54 if (isset($_POST["delete"])) { 55 $delete = $_POST["delete"]; 56 $delCon = file($filename); 57 $fp = fopen($filename, "w"); 58 for ($j = 0; $j < count($delCon); $j++) { 59 $delDate = explode("<>", $delCon[$j]); 60 if ($delDate[0] != $delete) { 61 fwrite($fp, $delCon[$j]); 62 } else { 63 fwrite($fp, "消去しました。\n");\ 64 } 65 } 66 fclose($fp); 67 } 68 ?> 69 </body> 70</html> 71
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/24 05:07
2019/02/24 05:42