掲示板のコメントにに投稿された日時を表示したい - PHPプロ!Q&A掲示板

4912

  • 0P

掲示板のコメントにに投稿された日時を表示したい

質問日時 / 2017年12月28日 22:48    回答数 / 1件

Questioner:  imudon  このエントリーをはてなブックマークに追加 

キーワード / PHP掲示板   

dateを使ってみたんですが、txtに書き込んだ後表示したら「t」としか表示されませんでした(そのコードは消してしまいました)

spanのところに日時を表示させるつもりです
  1. <?php
  2. $err_msg1 = "";
  3. $err_msg2 = "";
  4. $name = ( isset( $_POST["name"] ) === true ) ?$_POST["name"]"";
  5. $comment  = ( isset( $_POST["comment"] )  === true ) ?  trim($_POST["comment"])  : "";
  6.  
  7. //投稿がある場合のみ処理を行う
  8. if (  isset($_POST["send"] ) ===  true ) {
  9.     if ( $name   === "" ) $err_msg1 = "※名前を入力してください"
  10.  
  11.     if ( $comment  === "" )  $err_msg2 = "※コメントを入力してください";
  12.  
  13.     if( $err_msg1 === "" && $err_msg2 ==="" ){
  14.         $fp = fopen( "datas/commentdata.txt" ,"a" );
  15.         fwrite( $fp ,  $name."\t".$comment."\n");
  16.     };
  17.  
  18. };
  19.  
  20. $fp = fopen("datas/commentdata.txt","r");
  21.  
  22. $dataArrarray();
  23. while( $res = fgets( $fp)){
  24.     $tmp = explode("\t",$res);
  25.     $arr = array(
  26.         "name"=>$tmp[0],
  27.         "comment"=>$tmp[1]
  28.     );
  29.     $dataArr[]$arr;
  30. };
  31.  
  32.  
  33. ?>
  34. <!DOCTYPE>
  35. <html lang="ja">
  36.     <head>
  37.         <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  38.         <link rel="stylesheet" type ="text/css" href="bbs.css">
  39.         <title>掲示板</title>
  40.     </head>
  41.     <body>
  42.        <div class="wepper">
  43.             <div class="commentWrite">
  44.                 <form method="post" action="">
  45.                     <div>
  46.                         <p>名前<input type="text" name="name" autocomplete="off" value="<?php echo $name?>" ></p>
  47.                     </div>
  48.                     <div>
  49.                         <textarea  name="comment" placeholder="コメントの内容を入力してください"><?php echo $comment?></textarea>
  50.  
  51.                     </div>
  52.                     <div>
  53.                         <input type="submit" name="send" value="コメントする" >
  54.                     </div>
  55.                 </form>
  56.             </div>
  57.             <div class="err">
  58.                 <p><?php echo $err_msg1?></p>
  59.                 <p><?php echo $err_msg2?></p>
  60.             </div>
  61.             <div class="comments">
  62.                 <h2>コメント</h2>
  63.                 <?php foreach( $dataArr as $data ):?>
  64.                     <div class="comment">
  65.                         <div>
  66.                             <p><b><?php echo $data["name"]?></b><span></span></p>
  67.                         </div>
  68.                         <div>
  69.                             <p class="commentText"><?php echo $data["comment"]?></p>
  70.                         </div>
  71.                     </div>
  72.                 <?php endforeach;?>
  73.             </div>
  74.         </div>
  75.     </body>
  76. </html>
どこにどういうコードをいれればいいですか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimix>dateを使ってみたんですが、txtに書き込んだ後表示し

回答一覧

並び替え:

A01
answerershimix [1月5日 13:47]

>dateを使ってみたんですが、txtに書き込んだ後表示したら「t」としか
>表示されませんでした(そのコードは消してしまいました)

残念ですね。そのコードがあれば添削できたのに・・・

>どこにどういうコードをいれればいいですか?

どう保存して、どう読み出す設計にするのでしょうか?まず「設計」があって、それから「コーディング」することになります。



今現在は「名前、コメント」をタブ区切りで書き出しているようですから、これに倣って「名前、コメント、投稿日時」をタブ区切りで書き出す(そういう並びで書き出されているデータを読み込む)ということでいいのであれば、

fwrite( $fp ,  $name."\t".$comment."\n");



fwrite( $fp ,  $name."\t".$comment."\t".date("Y/m/d H:i:s")."\n");

に書き替えればいいんじゃないかと思います。あとは

        "comment"=>$tmp[1]



        "comment"=>$tmp[1],
        "date"=>$tmp[2]

として、

span要素の内側に、$data["date"]を表示するようにすればいいでしょう。


【 重 要 】

ただし今現在のソースの『コメントに改行があったら動作がおかしくなる』という部分も引き継ぎます。またhtmlspecialcharsを使っていないのでhtml/JavaScriptが書き込み放題です。その点はどのようにお考えですか?

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)