質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

675閲覧

PHPで簡単な掲示板を作成

turtle410

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/01/08 08:04

前提・実現したいこと

以下の条件を満たすように簡単な掲示板を作成しています。発言内容が表示されるようにするには
どの部分を修正すればいいですか?

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/08 08:42

現在起きている問題は何でしょうか。 ただ「テキストに保存する」形式のものだと積極回答は望めないと思います。 既に似たような質問が多く上がっている要件でもありますし、そもそも実用的な実装ではないからです。
退会済みユーザー

退会済みユーザー

2021/01/08 08:43

デバッグ依頼ですか? せめて「試したこと」「補足情報」も丁寧に情報を加えてほしいものですが。
退会済みユーザー

退会済みユーザー

2021/02/22 07:14

この質問も放置でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問