前提・実現したいこと
以下の条件を満たすように簡単な掲示板を作成しています。発言内容が表示されるようにするには
どの部分を修正すればいいですか?
1.利用者の過去の発言内容をテキストファイルで管理する。
2.全ての利用者の過去の発言内容を一覧で表示する。一覧には「名前」「コメント」「発言日時」の3つを1行ずつ表示する。
3.利用者の名前は最大20文字以内まで発言できる。20文字より多くの文字を入力して発言した場合はエラーメッセージを表示し、発言できないようにする。
4.利用者のコメントは最大100文字以内まで発言できる。100文字より多くの文字を入力して発言した場合はエラーメッセージを表示し、発言できないようにする。
5.利用者の名前とコメントは必ず文字が入力される。もし名前あるいはコメントが未入力で発言した場合はエラーメッセージを表示し、発言できないようにする。
発生している問題・エラーメッセージ
エラーは特にありません。
該当のソースコード
PHP
1<?php 2$filename = './review.txt'; //テキストファイル(review.txt)で管理する 3$date = date("Y-m-d H:i:s"); 4$log = ''; 5$error = []; 6 7if ($_SERVER['REQUEST_METHOD'] === 'POST') { 8 $name = $_POST['name']; 9 $comment = $_POST['comment']; 10 11 if ((mb_strlen($name) <= 20) && (mb_strlen($name) !== 0)) { 12 $error[] = '名前は20文字以内で書いてください'; 13 } // 11~16行目で項目のチェック 14 if ((mb_strlen($comment) <= 100) && (mb_strlen($comment) !== 0)) { 15 $error[] = 'ひとことは100文字以内で書いてください'; 16 } 17 18 if (count($error) === 0) { 19 $log = $name . ':' . $comment . '-' . $date . "\n"; 20 if (($fp = fopen($filename, 'a')) !== false) { 21 22 if (fwrite($fp, $log) === false) { 23 $error[] = 'ファイル書き込み失敗'; 24 } 25 fclose($fp); 26 } 27 28 } 29} 30 31$data = array(); 32if (is_readable($filename) === true) { 33 if (($fp = fopen($filename, 'r')) !== false) { 34 while (($tmp = fgets($fp)) !== false) { 35 $data [] = htmlspecialchars($tmp, ENT_QUOTES, 'UTF-8'); 36 } 37 fclose($fp); 38 } 39} 40 41?> 42 43<!DOCTYPE html> 44<html lang="ja"> 45 <head> 46 <meta charset="UTF-8"> 47 <title></title> 48 </head> 49 <body> 50 <h1>一言掲示板</h1> 51 <?php foreach ($error as $value) { ?> 52 <p><?php print $value; ?></p> 53 <?php } ?> 54 <form method="post"> 55 <label><p>名前 :<input type="text" name="name"></p></label> 56 <label><p>一言 :<input type="text" name="comment"></p></label> 57 <p><input type="submit" name="submit" value="送信"></p> 58 </form> 59 <ul> 60 <?php foreach ($data as $value) { ?> 61 <li> 62 <?php print $value; ?> 63 </li> 64 <?php } ?> 65 </ul> 66 </body> 67</html>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー