PHPで掲示板を作るときのポイント
掲示板を作るにはポイントがいくらかある。
- HTMLに入力欄が無いといけない
- 入力した内容を、DBや他のファイルに書き込まないといけない
- 書き込んだデータを取得して、表示しないといけない。
HTMLに入力欄が無いといけない
これにはinput タグを用いる。タグにはneme属性が必要。 formの中で submitする。
//保存のときはpost <form action="" method="post"> //name属性でPHPが判断する。 message: <input type="text" name="message"> user: <input type="text" name="user"> //submitを指定して、いわゆるsaveボタンの用な感じ。これで$_POSTに保存される。 <input type="submit" value="投稿"> </form>
入力した内容を、DBや他のファイルに書き込まないといけない
これはPHPでHTML部分から取得する
//これはお決まりの文句 覚えるしかない if ($_SERVER['REQUEST_METHOD'] == 'POST' { //先程のname属性を指定している。ハッシュで持っているということ。 $message = trim($_POST['message']); //こっちはname属性が user $user = trim($_POST['user']);
このようにして変数に詰め込む。 文字は、バリデーションといって、sql文がかけないように変換したり、空白を覗いたり、nllチェックなども必要。
書き込んだデータを取得して、表示しないといけない。
これは主にforeach文で行う そのときにlist メソッドと wxplodeメソッドを利用することがおおい。
まずPHPでデータから取得 fileメソッドを利用。
$posts = file($dataFile, FILE_EGNORE_NEW_LINE); $posts = array_reverse($posts);
表示部分
<?php if (count($posts)) : ?> //ここでフープを回している <?php foreach ($posts as $post) : ?> //取得したpostは長いので分解している。タブでタブとは "\t" のこと <?php list($message, $user, $postedAt) = explode("\t", $post); ?> <li><?php echo h($message); ?> (<?php echo h($user); ?>) -- <?php echo h($postedAt); ?></li> <?php endforeach; ?> <?php else : ?> //もしpostがなかったらelse文が走る <li>まだ投稿はありません。</li> <?php endif; ?>