PHPによる掲示板を作ってます。コメントのログをbbs.datというファイルに入れていき、表示させるようにしています。
しかし、いざ書き込んでDATファイルの中身をみてみると、何も書かれておらず困っています。原因分かりませんか?
*コードです
<?php $dataFile = 'bbs.dat'; //さっき作ったファイル呼び出し function h($s){ return htmlspecialchars($s,ENT_QUOTES,'UTF-8'); //エスケープの文 } if($_SERVER['REQUEST_METHOD']=='POST'&& isset($_POST['message'])&& isset($_POST['user'])){ //$_SERVERでどこからでもアクセスできるstaticなものにする //$_SERVER['REQUEST_METHOD']=='POST'でポストなメソッドを呼び出せる $message= trim($_POST['message']); $user = trim($_POST['user']); if($message !==''){ $user = ($user ==='')?'名無し投稿者' : $user; $message = str_replace("\t",' ',$message); $user = str_replace("\t",' ',$user); //文字置き換え $hiduke = date('Y-m-d H:i:s'); $newData = $message."\t".$user."\t".$hiduke."\n"; $fp =fopen($dataFile,'a'); /*foppenはファイルを開くメソッド。 *ついでに開き方を指定できる。 *今回は追加形式にしたいので'a'で。*/ fwrite($fp,$newData); //ファイルに書き込んでいくメソッド fclose($fp); } } $posts = file($dataFile,FILE_IGNORE_NEW_LINES); //呼び込む。最後ので改行を取り去る $posts = array_reverse($posts); //逆順に並び替え ?> <!DOCTYPE HTML > <html lang ="ja"> <head> <meta http-equiv="Content-Type" content="text/html";charset="UTF-8" /> <title>簡易掲示板</title> </head> <body> <h1>簡易掲示板</h1> <form action="" method="post"> message:<input type="text" name="message"> user:<input type="text" name="user"> <input type="submit" value="投稿"> </form> <h2>投稿一覧</h2> <ul> <?php if(count($posts)): ?> <?php foreach($posts as $post) : ?> <?php list($message,$user,$postedAt) = explode("",$post); ?> <li><?php echo h($message); ?>(<?php echo h($user); ?>)-<?php echo h($hiduke); ?></li> <?php endforeach; ?> <?php else : ?> <li>投稿はまだありません</li> <?php endif; ?> </ul> </body> </html>回答3件
あなたの回答
tips
プレビュー