フォーム画面でコメントと名前が未記入だった場合にアラームが出るようにしたくて、emptyを
使用し実装できたのですが、疑問ができたのでよろしければお答えいただけたらと思い投稿
いたしました。
PHP
1<?php 2$name = ''; 3$comment = ''; 4$log = date('Y m/d H:i:s') . "\n"; 5$file = './file.txt'; 6$data = []; 7 8if($_SERVER['REQUEST_METHOD'] ==='POST') { 9 if(isset($_POST['name']) === true) { 10 $name = $_POST['name'] . "\n" ; 11 if(isset($_POST['comment']) === true) { 12 $comment = $_POST['comment'] . "\n" ; 13 if(($fp = fopen($file, 'w')) !== false) { 14 while(($tmp = fgets($fp)) !== false) { 15 $data[] = htmlspecialchars($tmp,ENT_QUOTES,'UTF-8'); 16 } 17 18 if(mb_strlen($comment) >= 100) { 19 print '100文字以内にして下さい'; 20 }else if (empty ($_POST['comment']) === true){ 21 print 'コメントを入力してください' . "\n"; 22 }else { 23 print $comment; 24 } 25 if(mb_strlen($name) >= 20) { 26 print '20文字以内にして下さい'; 27 }else if (empty($_POST['name']) === true){ 28 print 'お名前を入力してください' . "\n"; 29 }else { 30 print $name; 31 } 32 33 if(fwrite($fp,$name . $log . $comment) === true) { 34 print $name . "\n"; 35 print $log . "\n"; 36 print $comment . "\n"; 37 } 38 39 } 40 41 fclose($fp); 42 } 43 } 44} 45?>
HTML
1 2<!DOCTYPE html> 3<html lang="ja"> 4<head> 5 <meta charset="UTF-8"> 6 <title></title> 7</head> 8<body> 9 <pre> 10 <form method="post" action="./bbs.php"> 11 <input type="text" name="name" value=""> 12 <textarea rows="10" name="comment"></textarea> 13 <input type="submit" value="コメント送信"> 14 </form> 15 16 </pre> 17</body> 18 19</html> 20
疑問は2点あります。1つ目はemptyを使用した時に$comment,$nameで実装できないのは
なぜなのでしょうか?
2点目は、(mb_strlen($comment) === 0),(mb_strlen($name) === 0)で試したときにも実装できませんでした。
これは、テキストに値が入っていない場合は変数が効いていないという解釈でよいのでしょうか?
よろしければお手数ですが、お答えいただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー