💬

1 : データベースなしでリアルタイムブラウザチャット作ったけど質問ある?

2022/05/28に公開

2: >>1 なんでデータベースなしでやったの?

金かかるからw

有料系のやつじゃないとクッソ重いしだるいからやて

俺、佐藤裕也(`ェ´)ピャー

お金がないので今日も、無料のブラウザサーバーを謳歌する

というわけでw replitっていうブラウザエディタ使ってんだけど、無料でサーバー使えるんだよねw

で、せっかくここまで有料を華麗に回避してきたのに、今更有用のデータベース使うのアホらしいんだよねw

じゃあもう自分で擬似データベース作ろうとwっていうわけなんだお

仕組みのお話。

POSTでデータを送信 → phpで、ファイルに保存。(txtでもなんでもいいお) → 非同期通信でリアルタイムで表示するためにajaxで表示

みたいな感じだおw 仕組みはEZ

ソースコードとかとか

まあ基本コードって感じかな?これベースにしていくよ。

POSTのPHP register的な? 送信先の処理だけどw
post.php
//日本語が文字化けしないようにするやつ

//postを起動したら
if($_POST){
  //postから送られてきたデータをcontentに入れる
  $content = $_POST['comment'];
  
  //ファイルパス 任意でよろ
  $file_name = './database/bbs.txt';

  //先程作った関数に、データを渡す
  fwrite('$file_name, $content');
  //リロード
  header('Location: ./');
}
送信フォーム。 ここはphpじゃなくてもHTMLでもいい
送信フォームにチャットを表示させることがあると思うので、その処理も買いときます。コメント見て
form.html
<html>
  <head>
    <title>SiChats</title>
  </head>
  <body>
    <form action="" method="POST">
      <input type="textare" name="comment" value="">
    </form>

    //チャット表示↓↓↓↓↓↓↓↓
    <div id="load_this"></div>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  </body>
</html>
ajaxのファイル。jQueryのやつ使う。送信フォームのとこにjQueryインポートしたのもそのため。
script.js
$('#load_this').load('database/bbs.txt #loadbox');
count = 0;
var countUp = function() {
  $('#load_this').load('database/bbs.txt #loadbox');
}
time = setInterval(countUp, 5000);
txtを読み込めるようにちょっと改造w
database/bbs.txt
<div id="loadbox">
こうすることによって、ajaxが読み込めるようになるんだお
jQuesyのやつは、ajaxのload関数を使ってるんだお
これがノーマルって感じかなw
よかったら、ワイのchatのやつ来てね
リンク→https://qiita-sichats.moysi.repl.co
気に入ったらフォローよろしく!!

Qiitaもやってるよ!!

Discussion