
PHP を使用してシンプルなオンライン チャット ルームを開発するにはどうすればよいですか?
インターネットの急速な発展に伴い、人々の間のコミュニケーションはますますインターネットに依存するようになりました。一般的なソーシャル ツールとして、オンライン チャット ルームは人々の日常生活に欠かせないものになっています。この記事では、PHP 言語を使用して簡単なオンライン チャット ルームを開発する方法と具体的なコード例を紹介します。
- 事前準備
始める前に、PHP 実行環境と Apache サーバーがコンピュータにインストールされていることを確認してください。 XAMPP や WAMP などのツールを使用して PHP 開発環境を構築できます。同時に、HTML、CSS、JavaScript の基本的な知識も必要です。 -
データベースとテーブルの作成
まず、チャット レコードを保存するテーブルをデータベースに作成します。次の SQL ステートメントを使用してテーブルを作成できます。 1 2 3 4 5 6 | CREATE TABLE chat (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
|
ログイン後にコピー
このテーブルには、自動インクリメントされる ID、送信者のユーザー名、メッセージの内容、およびメッセージが送信された時間が含まれます。
チャット ページの作成
プロジェクト ディレクトリに、index.php という名前のファイルを作成します。このファイルはチャット ページとして機能します。次のスタイルとスクリプトをファイルにインポートします: 1 2 3 | <link rel= "stylesheet" href= "style.css" >
<script src= "jquery.min.js" ></script>
<script src= "script.js" ></script>
|
ログイン後にコピー
ページで、チャット履歴を表示する div 要素を作成します: 1 | <div id= "chat-box" ></div>
|
ログイン後にコピー
同時に、ユーザー名を入力するためのフォームを追加します1 2 3 4 5 | <form id= "chat-form" >
<input type= "text" id= "username" placeholder= "用户名" required>
<input type= "text" id= "message" placeholder= "消息" required>
<button type= "submit" >发送</button>
</form>
|
ログイン後にコピー
バックエンド処理コードを作成する
チャット レコードの保存と読み取りを処理するために、同じディレクトリに chat.php という名前のファイルを作成します。まず、データベースに接続します: 1 2 3 4 5 6 7 8 9 10 11 | <?php
$servername = "localhost" ;
$username = "root" ;
$password = "" ;
$dbname = "chatroom" ;
$conn = new mysqli( $servername , $username , $password , $dbname );
if ( $conn ->connect_error) {
die ( "连接失败: " . $conn ->connect_error);
}
?>
|
ログイン後にコピー
次に、メッセージを保存する関数を作成します: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php
function saveMessage( $username , $message )
{
global $conn ;
$sql = "INSERT INTO chat (username, message) VALUES ('$username', '$message')" ;
if ( $conn ->query( $sql ) === TRUE) {
return true;
} else {
return false;
}
}
?>
|
ログイン後にコピー
次に、チャット レコードを取得する関数を作成します: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php
function getChatHistory()
{
global $conn ;
$sql = "SELECT * FROM chat" ;
$result = $conn ->query( $sql );
if ( $result ->num_rows > 0) {
while ( $row = $result ->fetch_assoc()) {
echo "<p>{$row['username']}: {$row['message']}</p>" ;
}
}
}
?>
|
ログイン後にコピー
最後に、フロントエンドによって送信されたフォーム データを処理するために、次のコードを chat.php ファイルに追加します。 1 2 3 4 5 6 7 8 9 10 11 12 | <?php
if ( $_SERVER [ "REQUEST_METHOD" ] == "POST" ) {
$username = $_POST [ "username" ];
$message = $_POST [ "message" ];
if (saveMessage( $username , $message )) {
echo "消息发送成功!" ;
} else {
echo "消息发送失败!" ;
}
}
?>
|
ログイン後にコピー
フロントエンド スクリプトの記述
script という名前のファイルをプロジェクト ディレクトリ.js ファイル。フォーム データの送信とチャット レコードの取得に使用されます。 jQuery の ajax メソッドを使用して処理します。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $(document).on( "submit" , "#chat-form" , function (e) {
e.preventDefault();
var username = $( "#username" ).val();
var message = $( "#message" ).val();
$.ajax({
url: "chat.php" ,
method: "POST" ,
data: { username: username, message: message },
success: function (response) {
$( "#message" ).val( "" );
}
});
});
function getChatHistory() {
$.ajax({
url: "chat.php" ,
method: "GET" ,
success: function (response) {
$( "#chat-box" ).html(response);
}
});
}
setInterval(getChatHistory, 1000);
|
ログイン後にコピー
スタイルの書き方
プロジェクト ディレクトリに style.css という名前のファイルを作成し、チャット ページのスタイルを設定します。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | body {
background: #f2f2f2;
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
#chat-box {
background: #fff;
border: 1px solid #ccc;
border-radius: 5px;
height: 200px;
margin: 20px auto;
overflow: auto;
padding: 10px;
width: 400px;
}
#chat-form {
display: flex;
margin: 0 auto;
width: 400px;
}
#chat-form input[type= "text" ] {
flex: 1;
padding: 5px;
}
|
ログイン後にコピー
-
プロジェクトを実行する index.php ファイルをブラウザで開き、ユーザー名を入力してメッセージを送信できるようになります。あなたのメッセージはデータベースに保存され、リアルタイムでチャット ページに表示されます。
上記の手順により、PHP を使用して簡単なオンライン チャット ルームを開発しました。もちろん、これは単なる入門レベルの実装であり、独自のニーズに応じてさらに開発および最適化できます。この記事があなたのお役に立てば幸いです! ###
以上がPHP を使用して簡単なオンライン チャット ルームを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。