前提・実現したいこと
HTML,PHPを使用し簡易掲示板を作成しています。
bbs.phpで入力フォームに書いたものが、bbs.txtに保存され、さらに入力フォームの下に投稿したものが順番に表示される(古いものが上で新しいものは下にくる)という掲示板です。
発生している問題・エラーメッセージ
bbs.txt内では最新の投稿が表示されているのですが、なぜかブラウザ上(bbs.php上?)では最新の投稿が表示されません。 参考画像: https://gyazo.com/d62d40eb705315823654aaceef77aa23 つまり、最初の「投稿1」を送信した時点では、フォームの下には何も表示されていない状態になります。
該当のソースコード
html
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5</head> 6 7<body> 8 <form action="bbs.php" method="post"> 9 User Name: <input type="text" name="userName"><br> 10 Comment: <input type="text" name="comment"><br> 11 <input type="submit"> 12 </form> 13 14</body> 15</html>
php
1 <?php 2 $fileName = "bbs.txt"; 3 $file = file($fileName, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 4 5 foreach ( $file as $value ) { 6 $line = explode("<>", $value); 7 echo $value."<br />\n"; 8 } 9 10 $num = sizeof($file) + 1; 11 $userName = $_POST["userName"]; 12 $comment = $_POST["comment"]; 13 $time = date("Y/m/d"); 14 $write = $num. "<>". $userName. "<>". $comment. "<>". $time. "\n"; 15 16 $fp = fopen($fileName, "a"); 17 flock ($fp, LOCK_EX); 18 fwrite($fp, $write); 19 flock ($fp, LOCK_UN); 20 fclose($fp); 21 ?>
試したこと
理由が全くわからず、調べても該当するものを見つけることができなかったため、コードの順番が悪いのかと思いforeach
を一番下に書いてみたり、echo
ではなくprint
で表示してみたり、echo $value
ではなくecho $write
と書いてみたり色々悪あがきをしてみたのですが改善しませんでした。
どなたかご教示宜しくお願いいたします。
補足情報(FW/ツールのバージョンなど)
MAMPを使いローカル環境で開発しています。
回答2件
あなたの回答
tips
プレビュー