PHP 聊天室製作教學

網際網路剛開始流行的 90 年代,線上聊天室是一種熱門的網站類型,記得 Kelvin 老師在高中教課時,學生們經常在電腦上偷偷玩聊天室,當時網路速度很慢,線上遊戲、影音平台、社群網站還沒有出現呢!我們一起學習製作 PHP 線上聊天室吧!

線上聊天室(Web Chatroom)提供訪客透過網頁進行文字訊息的即時互動聊天,通常是基於網頁技術,訪客透過網頁的介面來輸入文字訊息、查看其他訪客的訊息以及進行互動。

網頁聊天室通常是基於客戶端-伺服器(Client-Server)模型,訪客透過瀏覽器作為客戶端,連接到伺服器,並使用網頁介面與其他使用者進行聊天。伺服器端的程式碼會負責管理聊天室的使用者、處理訊息的傳輸、存儲聊天紀錄等等。而客戶端的程式碼則通常使用 JavaScript 與伺服器進行實時通訊,以達到即時互動的效果。

網頁聊天室可以應用在各種場景中,例如線上教學、線上客服、社群網路等。近年來,也出現了許多基於網頁技術的即時通訊應用程式,例如 Discord 等,這些應用程式也可視為一種高度客制化的網頁聊天室。

PHP 聊天室的範例程式碼:

聊天頁面 chatroom.php

登入頁面 login.php

 

此時若使用瀏覽器開啟聊天室網頁,將會出現 No such file or directory 錯誤。

新增一個用於記錄聊天訊息的 chatlog.txt 文字檔,即可正常進入聊天室喔!

 

清除聊天記錄 clear.php

清除聊天記錄的程式碼中,定義了變數 $filename,指定要清除的檔案名稱為 chatlog.txt。

然後使用 $_SERVER['REQUEST_METHOD'] 判斷請求方式是否為 POST,以及是否按下了清除按鈕,如果是,就使用 file_put_contents 函數將 chatlog.txt 檔案內容清空,並顯示聊天紀錄已經被清除的訊息。

最後,使用包含一個按鈕的表單,當按下按鈕時就會提交表單,觸發清除聊天紀錄的程式碼。

表單的 action 屬性設定為 htmlspecialchars($_SERVER['PHP_SELF']),這樣表單提交後就會再次請求目前頁面。

開啟這個網頁,按下「清除聊天紀錄」按鈕即可清空 chatlog.txt 檔案,此程式碼只會清空檔案內容,而不刪除檔案。