ホームページ >バックエンド開発 >PHPチュートリアル >php_D3_「シンプルチャットルーム」実現のためのキーテクノロジーを詳しく解説
PHP+MySQL インターネットにおける主要なテクノロジーの実装。具体的な機能は次のとおりです。
a. ユーザーが話すときにログイン名情報を表示します。 b. ユーザーの音声: ユーザーが発言した内容を入力します
c. 音声情報の表示: ユーザーはすべての音声情報を参照しますデザインのアイデア:
(1)。 ). ユーザーログインページ (login.php) を実装します
(3). 音声ページ (speak.php) を実装します
(4)。 page (main.php)
主要なテクノロジー:1. ページを自動的に更新します:
ページを定期的に自動的に更新する場合、実装方法は < の間に次のステートメントを追加します。 HTML の ;HEAD> および 34934661d7147ca926b095899343bad0 タグ:
1fa37f8ad25329a898b6a9b0c41327ad例: ユーザーは自動的にジャンプします別のページ new.php ページにアクセスしてから 20 秒後に、
2c338f79ed73b8fe728c290940e3bb46
2. ユーザー名を渡します:
ユーザーがチャット ルームにログインした後は、ユーザーが発言するときにそのログイン情報を使用できるように、システムは常にログイン情報を保持する必要があります。これはセッション達成を通じて行うことができます。セッションは一般的に使用される情報記憶機構であり、この例での応用について説明します。(1). ユーザーがシステムにログインするとき、ログイン名情報を保存するためにセッション変数を登録する必要があります:
1 <?php2 session_start(); //装载session库,一定要放在首行3 $user_name=$_POST["nick"];4 session_register("user_name") ; //注册 $user_name 变量5 ?>
その中で、行 2 はセッション関数をオンにし、行 3 はセッション関数を取得します。ユーザーがページフォームに入力したニックネーム情報を、4行目でセッション変数user_name.(2)に登録します。
1 <?php session_start();2 ···3 $author=$_SESSION["user_name"];4 ··· //把author信息存入数据库5 ?>
このようにして、ユーザーがシステムを離れる前に、システムは常にセッションを使用してログイン名情報を保存し、必要なときにいつでも使用できます。
3. 最新のコメントを表示する:
簡易チャット ルームで解決する必要があるもう 1 つの問題は、音声情報を表示するときに、音声情報が多数あるため、すべてを表示することができないことです。ただし、最新の一定数の発言情報のみが表示されます。これは、音声情報を音声時間の昇順にソートし、音声の最後の部分を選択することで実現できます。
以下は、ページに表示されている最新の 15 件のコメントです:
1 @mysql_data_seek($resut,$rows-15); //移动记录指针到前15笔记录 2 if ($rows<15) 3 $l=$rows; 4 else 5 $l=15; //记录总数小于15,则最多为该记录数 6 for ($i=1;$i<=$l;$i++) //通过循环读取发言信息 7 { 8 list($cid,$author,$create_time,$text)=mysql_fetch_row($result); 9 echo $create_time;10 echo " ";11 echo "【".$author."】";12 echo"说到:" ;13 echo $text;14 echo "<BR>"; //输出留言内容15 }
このうち、1 行目の $result は、すべてのメッセージをクエリして取得したレコード セットであり、mysql_data_seek() コマンドを使用してレコード カーソルを下から 15 番目 Record; 6 行目から 15 行目に最大 15 個のステートメントを出力します。
さらに、すべてのユーザー音声情報をデータベースに保持する必要はありません。保持しないと、データベースが急速に拡張されてしまいます。一定数の最近のステートメントのみを保持し、他の期限切れのステートメントは適時に削除するという戦略を使用できます。
システム実装:
(1)。 データベースを作成します:
CREATE DATABASE 'my_chat';
(2)。