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

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

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

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

Q&A

1回答

380閲覧

「フォームへの入力をした日時」を表示させたい

chacharo

総合スコア1

PHP

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

0グッド

0クリップ

投稿2021/11/15 09:22

フォームにテキスト文を入力し、送信ボタンを押すと、下記にテキスト文とその入力(送信)日時が表示されるようにしたいのですが、どうしても最後に送信した時の時間が表示されてしまいます。課題に、「date関数を使う」という指定があるのですが、date関数を使用した状態で、どのように変更を加えればいいでしょうか?

![イメージ説明

<?php $errors=[]; $lines=[]; //読み込むファイルパス define('FILE_PATH','./logs.txt'); //ここから追記 $comment=''; if($_SERVER['REQUEST_METHOD']==='POST'){ //POSTされていれば一連の処理を行う //POSTされた文字列の受け取り if(isset($_POST['comment'])===TRUE){ $comment=$_POST['comment']; $date = new DateTime('now'); } //追記モードでファイルを開く $fp=fopen(FILE_PATH,'a'); if($fp !== FALSE) //ファイルを開くのに成功していれば //書き込むテキストを構築。ここでは末尾に改行を付加する。 $log = $comment . "\n"; //書き込み処理 $result=fwrite($fp,$log); if($result===FALSE){ //書き込みに失敗したらエラーメッセージ $errors[]='ファイル書き込み失敗:' .FILE_PATH; } //ファイルを閉じる fclose($fp); } $line = []; if(is_readable(FILE_PATH)===TRUE){ $fp = fopen(FILE_PATH,'r'); if($fp !== FALSE){ $text=fgets($fp); while($text !== FALSE){ $lines[]=$text; $text=fgets($fp); } fclose($fp); } }else{ $errors[]='ファイルがありません'; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>発言ログ</title> </head> <body> <h1>発言ログ</h1> <form method="post"> <p>発言:<input type="text" name="comment"><input type="submit" name="submit" value="送信"> </p> </form> <?php foreach($errors as $error) { ?> <p><?php print $error; ?></p> <?php } ?> <?php foreach($lines as $line) { ?> <p><?php print $line; ?><?php echo $date -> format('Y年m月d日 H時i分s秒'); ?></p> <?php } ?> </body> </html>

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

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

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

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

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

guest

回答1

0

$dateもファイルに書き込んでください。
現状だと書き込まずnowで取ってきた固定データを表示させています。

書き込んだ上でそれぞれの時間を変換。

つまり、コメントと時間のセパレータが必要です。
書き込むときはセパレータでコメントと時間を区切った文字列とし、
読み込むときはセパレータで分割してそれぞれ表示する。

投稿2021/11/15 09:35

編集2021/11/15 09:37
m.ts10806

総合スコア80861

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問