版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 學(xué) 生 畢 業(yè) 論 文</p><p><b> ?。?011屆)</b></p><p> 摘要:在線聊天通訊是當(dāng)今廣泛應(yīng)用的一種網(wǎng)絡(luò)服務(wù),它為互聯(lián)網(wǎng)用戶提供了一種方便快捷的溝通方式,在線聊天通訊已經(jīng)成為了上網(wǎng)的重要活動(dòng)之一。本畢業(yè)設(shè)計(jì)提出的基于PHP的在線聊天通訊軟件能夠?yàn)橛脩籼峁┓奖?、文明的聊天環(huán)境。本畢業(yè)設(shè)計(jì)采用PHP和MySQL技術(shù)開
2、發(fā)了在線聊天通訊軟件。這個(gè)軟件具有多用戶聊天、顯示在線人數(shù)、敏感詞屏蔽、聊天記錄下載和基于IP地址的地理位置顯示功能。軟件完成后,在APMServ5.2.6搭建的Apache、PHP、MySQL網(wǎng)站服務(wù)器平臺(tái)進(jìn)行測(cè)試,各種模塊功能均能正常使用,達(dá)到預(yù)期的效果。</p><p> 關(guān)鍵詞:在線聊天;聊天記錄下載;顯示在線人數(shù);敏感詞屏蔽</p><p> Abstract: Online
3、 chat communication is widely used today as a network service that provide Internet users a convenient way to communicate, online chat communication has become an important event of the Internet. The graduation project p
4、ropose online chat communication software based on PHP to provide users with convenient, civilized chat environment. The graduation project using PHP and MySQL technology develop the online chat communication software.
5、This software has a multi-user chat, online </p><p> Keywords:online chat;the chats download;display the number of online;the sensitive words shielded</p><p><b> 目錄</b></p>
6、<p><b> 1. 課題背景1</b></p><p> 1.1 PHP簡(jiǎn)介1</p><p> 1.2 MySQL簡(jiǎn)介1</p><p> 1.3 Apache簡(jiǎn)介2</p><p> 1.4 課題研究的目的和意義3</p><p> 2. 軟件需求分析3&
7、lt;/p><p> 2.1 功能需求3</p><p> 2.2 性能需求3</p><p> 3. 軟件的運(yùn)行環(huán)境設(shè)計(jì)3</p><p> 3.1 軟件的運(yùn)行環(huán)境3</p><p> 3.2 軟件的調(diào)試3</p><p> 4. 系統(tǒng)模塊設(shè)計(jì)4</p>&l
8、t;p> 4.1視圖界面設(shè)計(jì)4</p><p> 4.2 聊天模塊設(shè)計(jì)4</p><p> 4.3 聊天記錄下載模塊設(shè)計(jì)5</p><p> 4.4 顯示在線人數(shù)模塊設(shè)計(jì)6</p><p> 4.5 敏感詞屏蔽模塊設(shè)計(jì)7</p><p> 4.6 基于IP地址的地理位置顯示模塊設(shè)計(jì)7<
9、;/p><p> 5. 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)7</p><p> 5.1 數(shù)據(jù)庫(kù)的設(shè)計(jì)7</p><p> 5.2 本軟件數(shù)據(jù)庫(kù)建表代碼8</p><p><b> 6. 軟件測(cè)試9</b></p><p> 6.1 測(cè)試環(huán)境9</p><p> 6.2 測(cè)試方
10、法9</p><p> 6.3 測(cè)試結(jié)果9</p><p><b> 7. 結(jié)束語(yǔ)10</b></p><p><b> 參考文獻(xiàn)11</b></p><p><b> 致謝12</b></p><p> 基于PHP的在線聊天通訊軟件
11、</p><p><b> 1. 課題背景</b></p><p><b> 1.1 PHP簡(jiǎn)介</b></p><p> 1.1.1 什么是PHP</p><p> PHP,是英文超級(jí)文本預(yù)處理語(yǔ)言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語(yǔ)言,
12、是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,被廣泛的運(yùn)用。PHP的另一個(gè)含義是:菲律賓比索的標(biāo)準(zhǔn)符號(hào)。</p><p> 1.1.2 PHP語(yǔ)法</p><p> PHP 獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法。它可以比 CGI或者Perl更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到
13、HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)[1]。</p><p> 1.1.3 PHP特性</p><p><b> PHP的特性包括:</b></p&g
14、t;<p> (1)開放的源代碼:所有的PHP源代碼事實(shí)上都可以得到。</p><p> ?。?)PHP是免費(fèi)的:和其它技術(shù)相比,PHP本身免費(fèi)。</p><p> ?。?)PHP的快捷性:程序開發(fā)快,運(yùn)行快,技術(shù)本身學(xué)習(xí)快。嵌入HTML:因?yàn)镻HP可以嵌入HTML語(yǔ)言,它相對(duì)于其他語(yǔ)言,編輯簡(jiǎn)單,實(shí)用性強(qiáng),更適合初學(xué)者。</p><p> ?。?)
15、跨平臺(tái)性強(qiáng):由于PHP是運(yùn)行在服務(wù)器端的腳本,可以運(yùn)行在UNIX、LINUX、WINDOWS下。</p><p> ?。?)效率高:PHP消耗相當(dāng)少的系統(tǒng)資源。</p><p> ?。?)圖像處理:用PHP動(dòng)態(tài)創(chuàng)建圖像。</p><p> ?。?)面向?qū)ο螅涸赑HP4,PHP5中,面向?qū)ο蠓矫娑加辛撕艽蟮母倪M(jìn),現(xiàn)在PHP完全可以用來開發(fā)大型商業(yè)程序。</p&g
16、t;<p> (8)專業(yè)專注:PHP支持腳本語(yǔ)言為主,同為類C語(yǔ)言。</p><p> 1.2 MySQL簡(jiǎn)介</p><p> 1.2.1 什么是MySQL</p><p> MySQL是一個(gè)備受歡迎的高性能、多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器,它是一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),由一個(gè)服務(wù)器守護(hù)程序MySQL和多種不同的客戶程序及庫(kù)組成。它由M
17、ySQL AB開發(fā)、發(fā)布和支持。MySQL AB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式結(jié)合開源價(jià)值和方法論的第二代開源公司,MySQL是MySQL AB的注冊(cè)商標(biāo)。</p><p> MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個(gè)大配置(mass-deployed)的軟件中去。MySQL網(wǎng)站(http://www.mysql.com)提供了關(guān)于MySQ
18、L和MySQL AB的最新的消息。</p><p> 1.2.2 MySQL的特征</p><p> MySQL有如下主要特征:</p><p> (1)多線程,MySQL的核心程序采用完全的多線程編程。線程是輕量級(jí)的進(jìn)程,它可以靈活地為用戶提供服務(wù),而不過多的消耗系統(tǒng)資源。用多線程和C語(yǔ)言實(shí)現(xiàn)的MySQL能很容易充分利用CPU,可以采用多CPU體系結(jié)構(gòu)。&l
19、t;/p><p> ?。?)開放源代碼,MySQL是自由的開放源代碼產(chǎn)品,可以在GPL下暢通使用。</p><p> ?。?)多操作系統(tǒng)支持,MySQL可運(yùn)行在不同的操作系統(tǒng)下。簡(jiǎn)單地說,MySQL可以支持Windows95/98/NT/2000及UNIX、Linux和SUN OS等多種操作系統(tǒng)平臺(tái)。這意味著在一個(gè)操作系統(tǒng)中實(shí)現(xiàn)的應(yīng)用可以很方便地移植到其他的操作系統(tǒng)下。 </p>
20、<p> ?。?)性能高效穩(wěn)定,MySQL擁有一個(gè)非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可以持續(xù)使用而不必?fù)?dān)心其穩(wěn)定性。事實(shí)上,MySQL的穩(wěn)定性足以應(yīng)付一個(gè)超大規(guī)模的數(shù)據(jù)庫(kù),因此Yahoo、Google、Cisco、HP和NASA都采用它作為自己的數(shù)據(jù)庫(kù)引擎。</p><p> (5)多用戶支持,MySQL可有效地滿足50~1000個(gè)并發(fā)用戶的訪問,并且在超過600個(gè)用戶限度的情況下,MySQ
21、L的性能沒有明顯的下降。</p><p> ?。?)應(yīng)用程序支持,有C、C++,JAVA、Perl、PHP和Python等多種客戶工具和API的支持。</p><p> ?。?)支持事務(wù)處理、行鎖定、子查詢、外鍵和全文檢索等功能。</p><p> ?。?)MySQL支持大型的數(shù)據(jù)庫(kù)處理,可以方便地支持上萬(wàn)條記錄的數(shù)據(jù)庫(kù)。作為一個(gè)開放源代碼的數(shù)據(jù)庫(kù),MySQL可以針
22、對(duì)不同的應(yīng)用進(jìn)行相應(yīng)的修改。</p><p> ?。?)MySQL有一個(gè)非常靈活而且安全的權(quán)限和口令系統(tǒng)。當(dāng)客戶與MySQL服務(wù)器連接時(shí),他們之間所有的口令傳送被加密,而且MySQL支持主機(jī)認(rèn)證[2]。</p><p> MySQL是數(shù)據(jù)庫(kù)領(lǐng)域的中間派。它缺乏一個(gè)全功能數(shù)據(jù)庫(kù)的大多數(shù)主要特征,但是又有比類似Xbase記錄存儲(chǔ)引擎更多的特征。它類似于企業(yè)級(jí)RDBMS需要一個(gè)積極的服務(wù)者守護(hù)
23、程序,但又不是非常消耗資源。</p><p> 1.3 Apache簡(jiǎn)介</p><p> 1.3.1 什么是Apache</p><p> Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。</p><p> Apache有
24、多種產(chǎn)品,可以支持SSL技術(shù),支持多個(gè)虛擬主機(jī)。Apache是以進(jìn)程為基礎(chǔ)的結(jié)構(gòu),進(jìn)程要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,因此,在一個(gè)Apache Web站點(diǎn)擴(kuò)容時(shí),通常是增加服務(wù)器或擴(kuò)充群集節(jié)點(diǎn)而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web服務(wù)器,市場(chǎng)占有率達(dá)60%左右。</p><p> 1.3.2 Apache web服務(wù)器的特性</p><p&g
25、t; Apache web服務(wù)器軟件擁有以下特性:支持最新的HTTP/1.1通信協(xié)議;擁有簡(jiǎn)單而強(qiáng)有力的基于文件的配置過程;支持通用網(wǎng)關(guān)接口;支持基于IP和基于域名的虛擬主機(jī);支持多種方式的HTTP認(rèn)證;集成Perl處理模塊;集成代理服務(wù)器模塊;支持實(shí)時(shí)監(jiān)視服務(wù)器狀態(tài)和定制服務(wù)器日志;支持服務(wù)器端包含指令(SSI);支持安全Socket層(SSL);提供用戶會(huì)話過程的跟蹤;支持FastCGI;通過第三方模塊可以支持Java Servl
26、ets。</p><p> 1.4 課題研究的目的和意義</p><p> 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,使人們的通訊方式產(chǎn)生了很大的變化,使得人們能以更低廉的價(jià)格,開發(fā)出更方便實(shí)用的網(wǎng)絡(luò)工具。各種在線服務(wù)系統(tǒng),更是深刻影響了人們的聯(lián)系方式。目前市場(chǎng)上,關(guān)于在線聊天通訊的軟件有很多,本軟件基于PHP,后臺(tái)使用數(shù)據(jù)庫(kù),操作上用戶只需通過注冊(cè)后并且了解Windows基本操作就可以很好地使用。作為網(wǎng)
27、絡(luò)工程專業(yè)的學(xué)生,即時(shí)了解和掌握流行的即時(shí)通訊機(jī)制并且應(yīng)用到實(shí)踐過程中,將極大的提高自己的設(shè)計(jì)和開發(fā)軟件的理論和技術(shù)水平;跟蹤國(guó)內(nèi)外最新的技術(shù)和開發(fā)模式,可以為以后類似的開發(fā)積累經(jīng)驗(yàn)。</p><p><b> 2. 軟件需求分析</b></p><p><b> 2.1 功能需求</b></p><p> 在線聊天
28、通訊軟件的特點(diǎn)就是能夠?qū)崟r(shí)的看到聊天內(nèi)容。所謂實(shí)時(shí),就是指在同一個(gè)聊天室中的用戶可以短時(shí)間內(nèi)看到其他人的發(fā)言,這與網(wǎng)絡(luò)上的留言板和BBS有很大的不同。</p><p> 在線聊天通訊軟件作為現(xiàn)代用戶最常用的應(yīng)用程序,其特點(diǎn)就是強(qiáng)調(diào)信息的實(shí)時(shí)性。在聊天室保持連接的狀態(tài)下,能夠?qū)崟r(shí)的顯示出用戶所談的內(nèi)容。</p><p><b> 2.2 性能需求</b></p
29、><p> 考慮到在線聊天通訊軟件制作的復(fù)雜性和本人的專業(yè)知識(shí)水平,本次設(shè)計(jì)的在線聊天通訊軟件主要實(shí)現(xiàn)以下功能:聊天記錄下載,顯示在線人數(shù),敏感詞屏蔽,基于IP地址的地理位置顯示等。</p><p> 3. 軟件的運(yùn)行環(huán)境設(shè)計(jì)</p><p> 3.1 軟件的運(yùn)行環(huán)境</p><p> 調(diào)試運(yùn)行程序的環(huán)境: Microsoft Windo
30、ws XP、APMServ5.2.6搭建的Apache、PHP、MySQL網(wǎng)站服務(wù)器平臺(tái);</p><p> 代碼編寫環(huán)境: Macromedia Dreamweaver CS4、記事本。</p><p> 操作系統(tǒng)要求 Win98 以上系列,服務(wù)器需支持PHP和MySQL。</p><p><b> 3.2 軟件的調(diào)試</b></
31、p><p> 本軟件選用MySQL作為后臺(tái)數(shù)據(jù)庫(kù)。它支持 WindowsXP操作系統(tǒng)平臺(tái)。其應(yīng)用可以很方便地移植到其他的操作系統(tǒng)下。</p><p><b> 4. 系統(tǒng)模塊設(shè)計(jì)</b></p><p><b> 4.1視圖界面設(shè)計(jì)</b></p><p> 本軟件的主界面采用HTML編寫,加入
32、必要的LOGO和圖片,采用簡(jiǎn)約風(fēng)格,讓整個(gè)界面看起來清新簡(jiǎn)潔。軟件的進(jìn)入界面見圖1 進(jìn)入界面圖,軟件的使用界面見圖2 使用界面圖[3]。</p><p><b> 圖1 進(jìn)入界面圖</b></p><p><b> 圖2 使用界面圖</b></p><p> 4.2 聊天模塊設(shè)計(jì)</p><p&g
33、t; 聊天模塊是在線聊天通訊軟件的基本模塊。聊天模塊的作用在于能夠?qū)崿F(xiàn)在線與其他用戶聊天,該模塊并沒有過多的頁(yè)面,對(duì)于聊天模塊而言,只需要進(jìn)行頁(yè)面中的數(shù)據(jù)處理即可,也無(wú)需保存數(shù)據(jù)。</p><p> 聊天模塊的實(shí)現(xiàn)主要是通過對(duì)頁(yè)面的不同區(qū)域的信息進(jìn)行間歇查詢,并返回查詢所得到的信息,顯示到一定的區(qū)域,讓不同用戶實(shí)時(shí)看到聊天記錄。主要代碼如下:</p><p> if (!functi
34、on_exists("file_get_contents"))</p><p> {function file_get_contents($path)</p><p> {if (!file_exists($path)) return false;</p><p> $fp=@fopen($path,"r");<
35、;/p><p> $all=fread($fp,filesize($path));</p><p> fclose($fp);</p><p> return $all;}</p><p><b> }</b></p><p> if (!function_exists("file
36、_put_contents"))</p><p> {function file_put_contents($path,$val)</p><p> {$fp=@fopen($path,"w");</p><p> fputs($fp,$val);</p><p> fclose($fp);</
37、p><p> return true;}</p><p><b> }</b></p><p> 聊天模塊的使用情況通過同一電腦的虛擬機(jī)和APMServ5.2.6搭建的Apache、PHP、MySQL網(wǎng)站服務(wù)器平臺(tái)進(jìn)行模擬運(yùn)行,界面見圖3 聊天圖。</p><p><b> 圖3 聊天圖</b>
38、</p><p> 4.3 聊天記錄下載模塊設(shè)計(jì)</p><p> 對(duì)于聊天的用戶而言,可以選擇是否將聊天記錄進(jìn)行保存,如果將聊天記錄進(jìn)行保存,系統(tǒng)可以將用戶的相應(yīng)的聊天記錄保存為html文件顯示在瀏覽器,用戶可以通過另存為講對(duì)應(yīng)的聊天記錄保存到個(gè)人電腦中。而數(shù)據(jù)庫(kù)是不會(huì)存儲(chǔ)用戶的聊天記錄,在用戶退出軟件后對(duì)應(yīng)的聊天記錄會(huì)刪除。</p><p> 聊天記錄下載
39、模塊通過對(duì)聊天內(nèi)容進(jìn)行轉(zhuǎn)存為HTML文件顯示在瀏覽器,并以對(duì)應(yīng)的日期命名,讓用戶清楚了解到聊天記錄的內(nèi)容。而保存功能需要用戶點(diǎn)擊瀏覽器的另存為來實(shí)現(xiàn)[4]。</p><p><b> 代碼如下:</b></p><p> $content = $_POST['content'];</p><p> $title = $_P
40、OST['title'];</p><p> $url = $_POST['url'];</p><p> $content = str_replace('<div',"\r\n<div",$content);</p><p> $content = strip_tags($con
41、tent,'<span><div><a>');</p><p> $content = stripslashes(str_replace(' '," ",$content));</p><p> $content = trim($content);</p><p
42、> $tpl = file_get_contents('log.tpl');</p><p> $content=str_replace(array('{time}','{content}','{url}','{title}'),array(date('Y-m-d'),$content,$url,$title
43、),$tpl);</p><p> $filename = $title.' '.date('Y-m-d').'.html';</p><p> if(preg_match('/MSIE/',$_SERVER['HTTP_USER_AGENT'])) </p><p> $file
44、name = rawurlencode($filename);</p><p> $filesize = strlen($content);</p><p> 在聊天記錄下載模塊中,當(dāng)點(diǎn)擊聊天記錄下載后,軟件會(huì)將對(duì)應(yīng)的聊天記錄下載,除了文件的命名在上述代碼實(shí)現(xiàn)外,該頁(yè)面的其他顯示信息,如頁(yè)面欄的日期顯示,時(shí)間顯示,以及其他一些顯示,也需要進(jìn)行對(duì)應(yīng)的設(shè)置,避免頁(yè)面過于空泛,該顯示主要通過
45、header()函數(shù)實(shí)現(xiàn),代碼如下:</p><p> header('Pragma: public');</p><p> header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');</p><p> header('Cach
46、e-Control: no-store, no-cache, must-revalidate');</p><p> header('Cache-Control: pre-check=0, post-check=0, max-age=0');</p><p> header('Content-Transfer-Encoding: binary')
47、;</p><p> header('Content-Encoding: none');</p><p> header('Content-type: application/force-download');</p><p> header('Content-Disposition: attachment; filen
48、ame="'.$filename.'"');</p><p> header('Content-length: '.$filesize);</p><p> echo $content;</p><p> 4.4 顯示在線人數(shù)模塊設(shè)計(jì)</p><p> 顯示在線人數(shù)模塊,可以
49、讓用戶清楚看到目前軟件的總在線用戶,避免等待時(shí)間,該模塊的實(shí)現(xiàn)是通過對(duì)數(shù)據(jù)庫(kù)chat_online表格的查詢統(tǒng)計(jì),輸出總?cè)藬?shù),實(shí)現(xiàn)對(duì)在線人數(shù)的統(tǒng)計(jì)顯示功能。</p><p> 通過對(duì)chat_online表格的篩選,剔除已經(jīng)登陸過長(zhǎng)而離開的用戶,通過IP的再次確定用戶的唯一性,再用couti()進(jìn)行人數(shù)的統(tǒng)計(jì),計(jì)算出目前在線總?cè)藬?shù),再進(jìn)行輸出[5]。具體代碼如下:</p><p> $
50、r=mysql_query("SELECT*FROM`chat_online`WHEREtime`<'".(time()-20)."'");</p><p> if (mysql_num_rows($r) > 0)</p><p> {$arr = mysql_fetch_assoc($r);</p>
51、<p> mysql_query("DELETE FROM `chat_online` WHERE `id`='".$arr['id']."'");</p><p> mysql_query("INSERT INTO `chat_event`(`from`,`to`,`time`,`type`,`content`) V
52、ALUES('".$arr['id']."','".$arr['to']."','".time()."','disconnect','')");}</p><p> $r = mysql_query("SELECT cou
53、nt(id) AS total FROM `chat_online`");</p><p> $arr = mysql_fetch_assoc($r);</p><p> echo $arr['total'];</p><p> 4.5 敏感詞屏蔽模塊設(shè)計(jì)</p><p> 敏感詞屏幕模塊,是為了規(guī)范聊天軟件
54、的文明性而設(shè)計(jì)的,避免聊天內(nèi)容中出現(xiàn)一些違法、違反政策、有辱文明之類的字眼出現(xiàn),凈化聊天頁(yè)面。</p><p> 敏感詞屏蔽模塊主要是通過建立一個(gè)badwords.txt文檔,在文檔中輸入聊天內(nèi)容不應(yīng)該出現(xiàn)的敏感字,通過foreach()函數(shù),將敏感詞導(dǎo)入,通過對(duì)比后,將文檔中出現(xiàn)的字在聊天記錄中屏蔽為***,具體通過mb_ereg_replace()實(shí)現(xiàn)[6]。具體代碼實(shí)現(xiàn)如下:</p><
55、;p> if (function_exists('mb_ereg_replace'))</p><p> {$badwords = file("badwords.txt");</p><p> foreach($badwords as $_w)</p><p> {$_w = trim($_w);</p&g
56、t;<p> $content = mb_ereg_replace($_w,'***',$content);}</p><p><b> }</b></p><p> 4.6 基于IP地址的地理位置顯示模塊設(shè)計(jì)</p><p> 基于IP地址的地理位置顯示模塊,通過建立ip.txt文檔,寫明IP對(duì)應(yīng)的地址,
57、在數(shù)據(jù)庫(kù)建表時(shí),把文檔內(nèi)容導(dǎo)入數(shù)據(jù)庫(kù)中,在聊天時(shí)通過查找對(duì)應(yīng)的IP,顯示出文檔中寫明的地理位置。</p><p> 該模塊在對(duì)ip.txt文件中的IP地址進(jìn)行更新升級(jí)后需要同時(shí)導(dǎo)入數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表格。</p><p> 5. 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)</p><p> 5.1 數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p> 數(shù)據(jù)庫(kù)在一個(gè)軟件中占有非常重要的地位
58、,數(shù)據(jù)設(shè)計(jì)的優(yōu)勢(shì)將直接對(duì)應(yīng)用軟件的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)應(yīng)該首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來可能增加的需求[7]。</p><p> 本軟件采用MySQL進(jìn)行數(shù)據(jù)庫(kù)的編寫,設(shè)計(jì)了一個(gè)數(shù)據(jù)庫(kù)lanyun,數(shù)據(jù)庫(kù)中分別建立三個(gè)表格,chat_event,chat_ip,chat_online,用來存儲(chǔ)聊天者發(fā)言的信息、聊天者IP地址、在線聊天人數(shù)。</p><
59、p> 5.2 本軟件數(shù)據(jù)庫(kù)建表代碼</p><p> 本軟件需要建立三個(gè)表格,chat_event,chat_ip,chat_online。</p><p> chat_event表格,用于記錄聊天模塊的相關(guān)信息,包括id、time、content等信息,通過對(duì)該表格的查詢修改,實(shí)現(xiàn)軟件的聊天模塊功能[8]。</p><p> 具體的建立表格代碼如下:
60、</p><p> CREATE TABLE `chat_event` (</p><p> `id` bigint(20) unsigned NOT NULL auto_increment,</p><p> `from` bigint(20) unsigned NOT NULL default '0',</p><p&g
61、t; `to` bigint(20) unsigned NOT NULL default '0',</p><p> `time` int(10) unsigned NOT NULL default '0',</p><p> `type` char(20) character set utf8 collate utf8_unicode_ci NOT
62、NULL,</p><p> `content` varchar(500) character set utf8 collate utf8_unicode_ci NOT NULL,</p><p> PRIMARY KEY (`id`)</p><p> ) ENGINE=MEMORY DEFAULT CHARSET=latin1 AUTO_INCREME
63、NT=5695 ;</p><p><b> END);</b></p><p> chat_ip表格,主要用于記錄對(duì)應(yīng)的IP地址的地理位置,包括id、name等信息,通過對(duì)該表格的查詢和修改,可以實(shí)現(xiàn)軟件的基于IP地址的地理位置顯示模塊。</p><p> 具體的建立表格代碼如下:</p><p> CREAT
64、E TABLE `chat_ip` (</p><p> `id` int(10) unsigned NOT NULL auto_increment,</p><p> `from` bigint(20) unsigned NOT NULL default '0',</p><p> `to` bigint(20) unsigned NOT N
65、ULL default '0',</p><p> `range` bigint(20) unsigned NOT NULL,</p><p> `name` varchar(200) character set utf8 collate utf8_unicode_ci NOT NULL,</p><p> PRIMARY KEY (`id`
66、),</p><p> KEY `range` (`range`)</p><p> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=494 ;</p><p><b> END);</b></p><p> chat_online表格,主要是用于統(tǒng)計(jì)
67、在線聊天人數(shù),實(shí)現(xiàn)顯示在線人數(shù)模塊功能,主要包括id、time、ip等基本信息。通過對(duì)該表格的查詢和確認(rèn),可以用于count()統(tǒng)計(jì)在線人數(shù)。</p><p> 具體的建立表格代碼如下:</p><p> CREATE TABLE `chat_online` (</p><p> `id` bigint(20) unsigned NOT NULL defaul
68、t '0',</p><p> `to` bigint(20) unsigned NOT NULL default '0',</p><p> `time` int(10) unsigned NOT NULL default '0',</p><p> `ip` int(10) NOT NULL default
69、'0'</p><p> ) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;</p><p><b> END</b></p><p><b> );</b></p><p> 數(shù)據(jù)庫(kù)的連接采用了mysq
70、l_pconnect() 函數(shù)和mysql_select_db() 函數(shù)。mysql_pconnect() 函數(shù)打開一個(gè)到 MySQL 服務(wù)器的持久連接。mysql_select_db() 函數(shù)設(shè)置活動(dòng)的 MySQL 數(shù)據(jù)庫(kù)。通過使用這兩條函數(shù),可以直接實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接,對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作。</p><p><b> 6. 軟件測(cè)試</b></p><p> 軟
71、件測(cè)試的目的是為了確保軟件能夠正確無(wú)誤地運(yùn)行。在測(cè)試過程中查漏補(bǔ)缺,對(duì)于錯(cuò)的地方在源程序中進(jìn)行修正。</p><p><b> 6.1 測(cè)試環(huán)境</b></p><p> 本軟件的測(cè)試環(huán)境是:采用APMServ5.2.6搭建的Apache、PHP、MySQL網(wǎng)站服務(wù)器平臺(tái)和IE瀏覽器。</p><p> APMServ 5.2.6 是一款
72、擁有圖形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl網(wǎng)站服務(wù)器平臺(tái)的軟件。該軟件將Apache和MySQL安裝為系統(tǒng)服務(wù)并啟動(dòng)。APMServ集合了Apache穩(wěn)定安全的優(yōu)點(diǎn),并擁有跟IIS一樣便捷的
73、圖形管理界面,同時(shí)支持MySQL 5.0 & 4.0兩個(gè)版本。</p><p><b> 6.2 測(cè)試方法</b></p><p> 本軟件采取的測(cè)試方法是先進(jìn)行各個(gè)模塊的測(cè)試,在各個(gè)模塊的編寫過程中單獨(dú)進(jìn)行測(cè)試運(yùn)行,測(cè)試運(yùn)行通過后才把各個(gè)模塊組合到一起,放入APMServ5.2.6搭建的Apache、PHP、MySQL網(wǎng)站服務(wù)器平臺(tái)中進(jìn)行總體測(cè)試。<
74、;/p><p> 在下載安裝好APMServ5.2.6后,把寫好的軟件程序文件放入軟件的跟目錄www\htdocs中,打開APMServ5.2.6,點(diǎn)擊“啟動(dòng)APMServ”,等該網(wǎng)站服務(wù)器平臺(tái)正常運(yùn)行后,通過IE瀏覽器訪問本機(jī)http://127.0.0.1/install.php,建立軟件的數(shù)據(jù)庫(kù)表格,再通過IE瀏覽器訪問本機(jī)http://127.0.0.1/,進(jìn)入聊天通訊軟件主界面,進(jìn)行各項(xiàng)測(cè)試。</p
75、><p><b> 6.3 測(cè)試結(jié)果</b></p><p> 經(jīng)過測(cè)試,各個(gè)模塊均能正常運(yùn)行,基本達(dá)到設(shè)計(jì)要求;總體測(cè)試后也能正常運(yùn)行,基本達(dá)到設(shè)計(jì)要求,實(shí)現(xiàn)在線聊天通訊功能。</p><p><b> 7. 結(jié)束語(yǔ)</b></p><p> 通過兩個(gè)月的努力,在老師與同學(xué)們的指導(dǎo)幫助下,在線
76、聊天通訊軟件順利的完成了。本軟件設(shè)計(jì)主要采用Dreamweaver CS4進(jìn)行編程,采用mysql_pconnect() 函數(shù)和mysql_select_db() 函數(shù)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行連接和設(shè)置,這樣使開發(fā)更加簡(jiǎn)單和方便。利用PHP和MySQL數(shù)據(jù)庫(kù)訪問技術(shù),實(shí)現(xiàn)多用戶聊天、顯示在線人數(shù)、敏感詞屏蔽、聊天記錄下載和基于IP地址的地理位置顯示功能。各功能模塊層次清晰,用戶可以很方面的使用本軟件。在不斷的修改和調(diào)試后,軟件終于可以正常
77、運(yùn)行,達(dá)到預(yù)期的效果。同時(shí),在本次設(shè)計(jì)中,我也發(fā)現(xiàn)了自己的許多不足。首先,最初開發(fā)軟件的時(shí)候,對(duì)軟件開發(fā)流程與軟件架構(gòu)掌握不全面,走了不少?gòu)澛?。其次,?duì)于開發(fā)軟件所使用的知識(shí)掌握不夠牢固,浪費(fèi)了不少時(shí)間。最后,我還應(yīng)該多掌握軟件開發(fā)方面的技術(shù),不斷提高自己開發(fā)軟件的能力。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]潘凱華.PHP從入門到精
78、通(第2版)[M].北京:清華大學(xué)出版社,2010.</p><p> [2]黃縉華等.MySQL入門很簡(jiǎn)單[M].北京:清華大學(xué)出版社,2011.</p><p> [3]羅廷蘭等.Dreamweaver CS4中文版綜合實(shí)例篇[M].北京:電子工業(yè)出版社,2009.</p><p> [4]宗杰等.PHP網(wǎng)絡(luò)編程學(xué)習(xí)筆記[M].北京:電子工業(yè)出版社,200
79、8.</p><p> [5]高洛峰.細(xì)說PHP[M].北京:電子工業(yè)出版社,2009.</p><p> [6]朱俊成.PHP編程網(wǎng)絡(luò)大講堂[M].北京:清華大學(xué)出版社,2011.</p><p> [7]鄭阿奇.MySQL實(shí)用教程[M].北京:電子工業(yè)出版社,2009.</p><p> [8](美)Me loni,J.G.PHP
80、、MySQL和Apache編程導(dǎo)學(xué)[M]. 北京:機(jī)械工業(yè)出版社,2008.</p><p><b> 致謝</b></p><p> 在本次論文的撰寫中,我得到了xxx老師的悉心指導(dǎo),在此,我對(duì)xx老師表示誠(chéng)摯的感謝以及真心的祝福。</p><p> 四年大學(xué)生活即將結(jié)束,回顧幾年的歷程,老師們給了我很多指導(dǎo)和幫助。他們嚴(yán)謹(jǐn)?shù)闹螌W(xué),優(yōu)良
81、的作風(fēng)和敬業(yè)的態(tài)度,為我們樹立了為人師表的典范。在此,我對(duì)所有的韓山師范學(xué)院的老師表示感謝,祝你們身體健康,工作順利!</p><p> 感謝我的同學(xué)們。我們從全國(guó)各地聚到一起,在四年大學(xué)期間,我們一起學(xué)習(xí),一起實(shí)踐,一起去娛樂。在即將畢業(yè)的時(shí)候,我們將要各奔東西,希望我們都有美好的未來,祝大家一路走好,前程似錦!</p><p> 感謝我的家人,一直支持我,你們永遠(yuǎn)健康快樂是我最大的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于php的在線聊天通訊軟件畢業(yè)論文
- 基于PHP的在線聊天通訊軟件畢業(yè)論文.doc
- 基于php的在線聊天通訊軟件開題報(bào)告
- 基于php的在線聊天通訊軟件開題報(bào)告
- 基于PHP的在線聊天通訊軟件開題報(bào)告.doc
- 畢業(yè)論文--sjchat聊天軟件
- 基于java局域網(wǎng)聊天軟件畢業(yè)論文
- 基于php的畢業(yè)論文
- 基于bs的qq聊天軟件設(shè)計(jì)畢業(yè)論文
- 基于bs的qq聊天軟件設(shè)計(jì)畢業(yè)論文
- 手機(jī)視頻聊天軟件畢業(yè)論文
- jsp在線聊天室-畢業(yè)論文
- 局域網(wǎng)聊天軟件畢業(yè)論文
- 局域網(wǎng)聊天軟件-畢業(yè)論文
- 基于javaee技術(shù)在線聊天系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)——畢業(yè)論文
- java畢業(yè)論文---局域網(wǎng)聊天軟件
- 基于java的uaw聊天室系統(tǒng) ——客戶端通訊-畢業(yè)論文
- 基于javaee技術(shù)在線聊天系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)——畢業(yè)論文
- 畢業(yè)論文--基于lan的聊天系統(tǒng)
- 基于php的課程網(wǎng)站畢業(yè)論文
評(píng)論
0/150
提交評(píng)論