簡単な掲示板で,書き込まれた内容を表記するのを上から順番に新しいのがくるようにするために、array_reverseを使って配列の中身を逆にしましたが、古いのから表示されます。エラーもでていないのでよくわかりません。。
<?php $bbs='bbs.txt'; $nothing=""; $twenty=""; $hundred=""; if($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['name'])&& isset($_POST['comment'])){ $name=$_POST['name']; $comment=$_POST['comment']; $lenname=mb_strlen($name,'utf-8'); $lencomment=mb_strlen($comment,'utf-8'); if($name===""||$comment===""){ $nothing= '*記入されてません'; }else if($lenname>20){ $twenty= '*名前は20文字以内'; }else if($lencomment>120){ $hundred= '*コメントは120文字以内'; }else{ $fp=fopen($bbs,'a'); fwrite($fp,date('m月d日 H:i:s').' '.$name.' '.$comment."\n"); fclose($fp); } } $data=array(); $reverse=array_reverse($data); if(is_readable($bbs)===TRUE){ if(($fp=fopen($bbs,'r'))!==FALSE){ while($tmp=fgets($fp)){ $reverse[]=htmlspecialchars($tmp,ENT_QUOTES,'UTF-8'); }fclose($fp); } } ?> <!DOCTYPE html> <html lang="ja"> <title>掲示板</title> <head> <meta charset="UTF-8"> </head> <body> <p><?php echo $nothing; ?></p> <p><?php echo $twenty; ?></p> <p><?php echo $hundred; ?></p> <form action="" method="POST"> <p>名前</p> <p><input type="text" name="name"></p> <p>コメント</p> <p><textarea name="comment"></textarea></p> <p><input type="submit" value="送信!"></p> </form> <?php foreach($reverse as $value){?> <p><?php echo $value; ?></p> <?php } ?> </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。