文字数overや記入されていないときのエラーの書き出しを関数の中にechoと書くのではなく、html内で処理したいのですが、最初から画面にエラーの文字が出てしまいます。またこれglobal処理していますがそんな面倒くさいことしなくてもできるような気がします...
<?php $bbs='bbs.txt'; 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===""){ global $nothing; $nothing='*記入されてません'; }else if($lenname>20){ global $twenty; $twenty='*名前は20文字以内'; }else if($lencomment>120){ global $hundred; $hundred='*コメントは120文字以内'; }else{ $fp=fopen($bbs,'a'); fwrite($fp,date('m月d日 H:i:s').' '.$name.' '.$comment."\n"); fclose($fp); } } if(is_readable($bbs)===TRUE){ $fp=fopen($bbs,'r'); while($tmp=fgets($fp)){ $data[]=htmlspecialchars($tmp,ENT_QUOTES,'UTF-8'); }fclose($fp); } ?> <html> <title>掲示板</title> <head> </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($data as $value){?> <p><?php echo $value; ?></p> <?php } ?> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。