前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
プログラミング初心者です。PHPで掲示板を作成しているのですが、 ①nameとcommentを入力した際には、ブラウザにてどちらも出力(入力した時間も出力)→これはできています。 ②nameかcommentのいずれかだけを入力した場合はエラー→こちらはできています。 ③②でエラーが出た場合、投稿一覧には何も出力したくないのですが、「●: -2020-09-13 08:01:32」のように、出力されてしまいます。上記のような出力が出ないようにするためには、どのようにすれば良いでしょうか?ご教示お願い致しますm(__)m
該当のソースコード
<?php $filename = 'TokyoTyrantTable.csv'; $name=''; $comment=''; $name_max = 20; $comment_max = 100; $log = date('(-Y-m-d H:i:s)'); $fp = fopen($filename, 'a+b'); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $name = htmlspecialchars($_POST['name']); $comment = htmlspecialchars($_POST['comment']); fputcsv($fp, [$name, $comment,$log]); rewind($fp); } while ($row = fgetcsv($fp)) { $rows[] = $row; } fclose($fp); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <link href="style.php" rel="stylesheet" type="text/css" media="all"> <title>掲示板</title> </head> <body> <h1>掲示板</h1> <section> <h2>新規投稿</h2> <?php if (mb_strlen($name) > $name_max){?> <p><?php print '名前は20文字以内で入力してください';?></p> <?php } ?> <?php if(mb_strlen($name) === 0){?> <p><?php print '名前を入力してください';?></p> <?php } ?> <?php if (mb_strlen($comment) > $comment_max){?> <p><?php print 'ひとことは100文字以内で入力してください';?></p> <?php } ?> <?php if(mb_strlen($comment) === 0){?> <p><?php print 'ひとことを入力してください';?></p> <?php } ?></section> <section class="toukou"> <h2>投稿一覧</h2> <?php if (!empty($rows)){?> <?php foreach ($rows as $row){ ?> <?php if((empty($name))&&(empty($comment))) { ?> <li><?php print $row[0].":"?> <?php print $row[1] ?> <?php print $row[2] ?></li> <?php } else{?> <?php break; } ?> <?php } ?> <?php } ?> </body> </html><form action="" method="post"> <div class="name"><span class="label">お名前:</span><input type="text" name="name" value=""></div> <div class="honbun"><span class="label">本文:</span><textarea name="comment" cols="30" rows="3" maxlength="80" wrap="hard" placeholder="100字以内で入力してください。"></textarea></div> <input type="submit" value="投稿"> </form>
PHP
試したこと
試している箇所を抜粋いたします。
<h2>投稿一覧</h2> <?php if (!empty($rows)){?> <?php foreach ($rows as $row){ ?> <?php if((empty($name))&&(empty($comment))) { ?> <li><?php print $row[0].":"?> <?php print $row[1] ?> <?php print $row[2] ?></li> <?php } else{?> <?php break; } ?> <?php } ?> <?php } ?>補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/15 01:11