phpとフォームで簡単チャットを作る、まとめ

この記事がお役に立てたならシェアしてくれると嬉しいです。

今まで紹介した機能を使い簡単なチャットのスクリプトを書きます。

このスクリプトは入力されたデータをサニタイズして保存して
最新5回までの過去の発言を表示する機能を持たせています。

スポンサーリンク

簡単チャットのソース


<?php
if(isset($_POST["botan"]))
{
   $moji='"';
   $moji.=htmlspecialchars($_POST["namae"],ENT_NOQUOTES);
   $moji.='"';

   $moji.=",";

   $moji.='"';
   $moji.=htmlspecialchars($_POST["data"],ENT_NOQUOTES);
   $moji.='"';

   $moji.=",";


   $moji.='"';
   $moji.=date("Y/m/d G:H:s");
   $moji.='"';

   $moji.="\r\n";

   $file=@fopen("test10_2.csv","a");
   if(!$file)
   {
   }
   else
   {
      fputs($file,$moji);
      fclose($file);
   }

   $_POST["botan"]=NULL;
}
?>



<?php
$file=@fopen("test10_2.csv","r");
if(!$file)
{
}
else
{
  $i=0;
  while($data=fgetcsv($file,1024))
  {
     $List[$i]=$data;
     $i++;
  }
  fclose($file);

  print "<table border=1>";
  for($i=count($List)-5;$i<count($List);$i++)
  {
     if($i<0)
     {
         continue;
     }
     print "<tr>";
     for($j=0;$j<count($List[$i]);$j++)
     {
        print "<td>";
        print nl2br($List[$i][$j]);
        print "</td>";
     }
     print "</tr>";
  }
  print "</table>";
}
?>


<br>

<form method="post">
名前 <input type="text" name="namae" maxlength="10" value="名前">
<br>

データ<textarea name="data" cols="16" rows="2" wrap="hard" maxlength="256">
初期値の文字
</textarea>

<br>
<input type="submit" name="botan" value="送信">
</form>


実行するとこうなります。
phpとフォームで簡単チャットを作る、まとめ


実際に実行できるサンプルは
こちらです。

実行すると過去に入力された名前と文字データと投稿した時間を
最新の5レコードをテーブルに入れて表示し
入力項目として名前・データ・送信ボタンが表示されます。

レコード自体は最新5レコード以上あっても削除せず
どんどんレコードが増えていきます。

その為、レコードを追加していくとファイルをサイズも大きくなり
実行速度も落ちていく弱点もあります。

他にもデータのバックアップとらないとかファイルロックしていないとか
修正すべき点もあります。

次回からもっと立派なフォームにする機能を紹介ます。
まずはファイルをロックする機能を書きます。

スポンサーリンク

この記事がお役に立てたならシェアしてくれると嬉しいです。


最新記事の更新情報をお届けします。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)