伝言板

次のリンクをクリックすると「伝言板」が呼び出されます。
伝言板を呼び出す

プログラムの説明

  1. JavaScript はクライアント側で実行されるのに対して PHP はサーバー側で実行されます。
    伝言板ではタイプされた「名前, 宛先, メッセージ」をサーバー側のファイルに記録します。
    複数のユーザーが情報を交換しながらプレイするゲームなどでは PHP が活躍します。
  2. サーバー上のファイル(message.txt)を利用して伝言板を作成します。
    次のファイルをアップロードして下さい。
  3. memoboard.php の全ソースコードです。
    utf-8 でタイプしてアップロードして下さい。
    <html>
    <body>
      <h2>伝言板</h2>
    
      <?php
        date_default_timezone_set("Asia/Tokyo"); 
        $mode= $_POST['mode'];
        $name= $_POST['name'];
        $atesaki= $_POST['atesaki'];
        $msg= $_POST['msg'];
        $ymd= date("Y/m/d H:i:s");
    
        //ファイルを入力
        if (!($fp = fopen("message.txt","r")))
        {   die('message.txt read open error');  }
        while(!feof($fp))     $ary[]= fgets($fp);
        fclose($fp);
    
        //PUT のとき $ary[] に Message を追加
        if ($mode=="PUT")
        {   $ary[]= $ymd . ":" . $name . ":" . $atesaki . "様:" . $msg . "\n";
        }
    
        //10件を超えると削除
        if (count($ary)>10)     array_shift($ary);
    
        //array を表示
        for($i=0; $i<count($ary); $i++)  echo $ary[$i] . "<br>";
    
        //$ary[] をファイルに保存
        if (!($fp = fopen("message.txt","w")))
        {   die('message.txt write open error');  }
        for($i=0; $i<count($ary); $i++) fputs($fp, $ary[$i]);
        fclose($fp);
      ?>
    
      <h3>お名前, 宛先, メッセージをタイプして下さい</h3>
      <form action="memoboard.php" method="post">
        名前:<input type="text" name="name"><br>
        宛先:<input type="text" name="atesaki"><br>
        <textarea name="msg" rows="8" cols="80"></textarea><br><br>
        <input type="submit" name="mode" value="PUT">
      </form>
    
      </body>
    </html>
    
  4. Form からタイプされたデータを受け取って "message.txt" に記録されている TEXT を配列に格納します。
        date_default_timezone_set("Asia/Tokyo"); 
        $mode= $_POST['mode'];
        $name= $_POST['name'];
        $atesaki= $_POST['atesaki'];
        $msg= $_POST['msg'];
        $ymd= date("Y/m/d H:i:s");
    
        //ファイルを入力
        if (!($fp = fopen("message.txt","r")))
        {   die('message.txt read open error');  }
        while(!feof($fp))     $ary[]= fgets($fp);
        fclose($fp);
    
  5. PUT のとき受け取ったデータを配列に追加します。
    データが10件を超えると、古いデータを削除します。
    配列のデータを表示します。
        if ($mode=="PUT")
        {   $ary[]= $ymd . ":" . $name . ":" . $atesaki . "様:" . $msg . "\n";
        }
    
        if (count($ary)>10)     array_shift($ary);
    
        for($i=0; $i<count($ary); $i++)  echo $ary[$i] . "<br>";
    
  6. 配列のデータをファイルに書き込みます。
        if (!($fp = fopen("message.txt","w")))
        {   die('message.txt write open error');  }
        for($i=0; $i<count($ary); $i++) fputs($fp, $ary[$i]);
        fclose($fp);
    
  7. データをタイプ入力する Form です。
    PUT ボタンをクリックすると、伝言板に追加されます。
      <h3>お名前, 宛先, メッセージをタイプして下さい</h3>
      <form action="memoboard.php" method="post">
        名前:<input type="text" name="name"><br>
        宛先:<input type="text" name="atesaki"><br>
        <textarea name="msg" rows="8" cols="80"></textarea><br><br>
        <input type="submit" name="mode" value="PUT">
      </form>