• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 基于PHP+MySQL的聊天室設計

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    MySQL 并發能力強、響應速度快,是 性能 優異的 數據庫 軟件; PHP 是功能強大的 服務器 端 腳本語言 。筆者在網站 開發 中,采用PHP4.0+MySQL3.23.38建立了多種應用。下面,以一個簡單的聊天室設計為例,介紹PHP+MySQL在網頁開發中的應用。 1、總體設計 1.
    MySQL并發能力強、響應速度快,是性能優異的數據庫軟件;PHP是功能強大的服務器腳本語言。筆者在網站開發中,采用PHP4.0+MySQL3.23.38建立了多種應用。下面,以一個簡單的聊天室設計為例,介紹PHP+MySQL在網頁開發中的應用。

      1、總體設計

      1. 1 構思與規劃:

      聊天室的基本原理,就是把每個連上同一網頁的用戶傳送的發言數據儲存起來,然后將所有的發言數據傳給每一用戶。也就是說,用數據庫匯集每個人的發言,并將數據庫中的數據傳給每一個人就實現了聊天室的功能。

      1.2 表設計

      首先使用MySQL建立表chat用來儲存用戶的發言:

    mysql> CREATE TABLE chat
    -> (chtime DATATIME,
    -> nick CHAR(10) NOT NULL,
    ->words CHAR(150));

      表中只設定了三個域,chtime是發言的時間,nick為發言者的昵稱,words是發言的內容,發言最多150個字符

      1.3 網頁設計

      一個最簡單的聊天室通常需要兩個頁框:一個頁框是用戶輸入發言的表單,另一個用來顯示大家的發言。所以代碼段通常至少需要如下幾段:

      建立頁框的結構(main.php

      顯示大家發言的程序段(cdisplay.php)

      傳送用戶發言的程序段(speak.php)

      用戶登錄進入聊天室程序段(login.php)

      2 、代碼設計

      以上規劃完成后,就可以著手代碼設計了,采用php可以非常簡明實現以上的功能。

      2.1 用戶登錄login.php,本段代碼是一個完全HTML網頁

    <html>
    <head>
    <title>用戶登錄</title>
    </head>
    <body>請輸入您的昵稱<br>
    <form action="main.php" method="post" target="_self">
    <input type="text" name="nick" cols="20">
    <input type="submit" value="登錄">
    </body>
    </html>

      用戶提交自己的昵稱后,就進入到聊天室,以下的處理交由main.php處理。

      2.2 頁框主體代碼段main.php:

    <?
    setcookie("nick",$nick) //用cookie記錄用戶昵稱,是常用的傳遞變量方法
    ?>
    <html>
    <title>山西鋁廠聊天室試用版ver1.0</title>
    <frameset rows="80%,*">
    <frame src=" cdisplay.php" name="chatdisplay">
    <frame src="speak.php" name="speak">
    </frameset>
    </html>

      2.3 顯示發言cdisplay.php

      本代碼段的任務是將表chat中的數據取出,顯示在頁框中。每次刷新時,取數據庫中最近的15條發言。同時,為防止數據庫無限增大,需設計刪除陳舊數據的功能。代碼如下

    <html>
    <head>
    <title>顯示用戶發言</title>
    <meta http-equiv="refresh" content="5;url=cdisplay.php">
    </head>
    <body>
    <?
    上一篇      目錄      下一篇_ID=mysql_connect("main","root");
    //鏈接Mysql服務器 服務器名為main,管理員名為root
    mysql_select_db("abc"); //選擇數據庫
    $str="select * from chat ORDER BY chtime;" ; //查詢字符串
    $result=mysql_query($str, 上一篇      目錄      下一篇_ID); //送出查詢
    $rows=mysql_num_rows($result); //取得查詢結果的記錄筆數
    //取得最后15筆發言,并顯示
    @mysql_data_seek($resut,$rows-15); //移動記錄指針到前15筆記錄
    if ($rows<15) $l=$rows; else $l=15; //記錄總數小于15,則最多為該記錄數
    for ($i=1;$i<=$l;$i++) {
    list($chtime,$nick,$words)=mysql_fetch_row($result);
    echo $chtime; echo " ";echo $nick; echo":" ; echo $words; echo "<BR>";
    }
    //清除庫中過時的數據
    @mysql_data_seek($result,$rows-20); //移動記錄指針到前20筆記錄
    list($limtime)=mysql_fetch_row($result);
    $str="DELETE FROM chat WHERE chtime<'$limtime' ;" ;
    $result=mysql_query($str,上一篇      目錄      下一篇_ID); //送出查詢字符串,庫中只留前20個記錄
    mysql_close(上一篇      目錄      下一篇_ID);
    ?>
    </body>
    </html>

      2.4 送出發言到數據庫speak.php

    <html>
    <head>
    <title>發言</title>
    </head>
    <body>
    <?
    If ($words)
    { 上一篇      目錄      下一篇_ID=mysql_connect("main","root");
    mysql_select_db("abc"); //數據庫名為abc
    $time=date(y).date(m).date(d).date(h).date(i).(date(s); //取得當前時間
    $str="INSERT INTO chat(chtime,nick,words) values
    ('$time','$nick','$words');" ;
    mysql_query($str,上一篇      目錄      下一篇_ID); //送出發言到數據庫
    mysql_close(上一篇      目錄      下一篇_ID);
    }
    ?>
    //輸入發言的表單
    <form action="speak.php" method="post" target=" _self">
    <input type="text" name="words" cols="20">
    <input type="submit" value="發言">
    </form>
    </body>
    </html>

      完成以上工作后,一個簡單的聊天室制作就完成了。當然,設計者可以根據個人愛好做一些個性化設計,如增加一個頁框,顯示當前聊天室人員名單、增加發言表情、取得發言者IP、進一步美化頁面等等。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>