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; ?>