###前提・実現したいこと
前提
- php7
- apache
- csv
掲示板を作成してるのですが、TextAreaに入力せずにも、更新毎に、前回書いたテキストが飛ばされてしまいます。
出力先は、csvで、追加していく形式です。
- MVCを使っておらず、MVCを使って書く場合、どのあたりが、controllerなのでしょうか?
- view(bulletin_board_top.html)に記述されています、phpは、別途で用意したほうが、良いのでしょうか?
また、こうした方が、良いなど、アドバイスを頂けると幸いです。
###view(bulletin_board_top.html)
html
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>課題:掲示板</title> 6 </head> 7 <body> 8 <center> 9 <h1>課題:掲示板</h1> 10 </center> 11<?php 12echo "<center>"; 13echo "<table border=\"0\">"; 14 $ary = $_POST['records']; 15 foreach ($ary as $key => $value) { 16 echo "<tr>"; 17 echo "<td>No.</td>"; 18 echo "<td>".$ary[$key][0]."</td>"; 19 echo "<td>日時</td>"; 20 echo "<td>".$ary[$key][1]."</td>"; 21 echo "</tr>"; 22 echo "<tr>"; 23 echo "<td align=\"center\" colspan=\"4\">コメント</td>"; 24 echo "</tr>"; 25 echo "<tr>"; 26 echo "<td colspan=\"4\">".$ary[$key][2]."</td>"; 27 echo "</tr>"; 28 } 29echo "</table>"; 30echo "<center>"; 31?> 32<form action="BulletinBoard.php" method="post"> 33 <textarea name="comment" rows="8" cols="40"></textarea> 34 <input type="submit" name="submit" value="投稿"> 35</form> 36 37 </body> 38</html>
###BulletinBoard.php
php
1<?php 2date_default_timezone_set('Asia/Tokyo'); 3$filepath ="../csv/test.csv"; 4$file = new SplFileObject($filepath); 5$file->setFlags(SplFileObject::READ_CSV); 6$timestamp = time() ; 7$now_day = date("Y/m/d H:i:s",$timestamp); 8 9 10foreach ($file as $line) { 11 if (!is_null($line[0])) { 12 $records[] = $line; 13 $last_no = $line[0]; 14 } 15} 16 17if (isset($_POST['comment'])) { 18 $comment = $_POST['comment']; 19 $file = fopen("../csv/test.csv", "a"); 20 $c_records = array( 21 $last_no, 22 $now_day, 23 $comment 24 ); 25 if($file){ 26 var_dump(fputcsv($file, $c_records)); 27 } 28 fclose($file); 29}else{ 30 //エラー文言 31} 32 33$_POST['records'] = $records; 34include('../template/BulletinBoard/bulletin_board_top.html'); 35?>
###test.csv
1,"2016/11/19 16:01:20",コメント1 2,"2016/11/19 16:17:44",hoge2 3,"2016/11/19 16:18:18",hoge3
###補足情報(言語/FW/ツール等のバージョンなど)
php7.0.12
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/20 07:15
2016/11/20 07:51
2016/11/20 07:55
2016/11/20 08:04
2016/11/20 08:17
2016/11/20 08:41