計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)踐報(bào)告要點(diǎn)_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)踐報(bào)告要點(diǎn)_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)踐報(bào)告要點(diǎn)_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)踐報(bào)告要點(diǎn)_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)踐報(bào)告要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

、必做部分局域網(wǎng)組網(wǎng)1)實(shí)驗(yàn)?zāi)康母鶕?jù)網(wǎng)線制作標(biāo)準(zhǔn),使用五類(lèi)雙絞線制作直通線、交叉線,并了解各種網(wǎng)線的應(yīng)用范圍;網(wǎng)路設(shè)備的介紹;c)IP地址;d)IP地址尋址過(guò)程;WINDOWS下常用網(wǎng)絡(luò)命令介紹。2)實(shí)驗(yàn)環(huán)境交換機(jī)、PC機(jī)、網(wǎng)線、水晶頭、測(cè)試儀、RJ-45鉗、WindowsXP操作系統(tǒng),兩個(gè)同學(xué)一組共同完成本實(shí)驗(yàn),并進(jìn)行實(shí)驗(yàn)驗(yàn)證。3)實(shí)驗(yàn)步驟步驟1將直通雙絞線的一端接到交換機(jī)上,另一端接到 PC機(jī)上的網(wǎng)卡上,此時(shí)交換機(jī)對(duì)應(yīng)的端口指示燈應(yīng)邊亮。步驟2IP地址的配置將PC機(jī)的IP地址修改為“3”,子網(wǎng)掩碼修改為,默認(rèn)網(wǎng)關(guān)修改為54。在“首選DNS服務(wù)器”框中填入“8”。步驟3計(jì)算機(jī)名的配置將計(jì)算機(jī)名設(shè)定為“ks54”,工作組設(shè)為“WEBSRV”步驟4ARP協(xié)議的測(cè)試進(jìn)入MS-DOS方式在MS-DOS方式下執(zhí)行如下命令arp-a(3)在MS-DOS方式下執(zhí)行如下命令ping然后再用arp-a命令查看,顯示結(jié)果大致如下~ ~ RUUDUH^Xfflt色?5站Cftd.U*??fl*MitFfriDftBUiAA*wEHr(5S.+■5-l-2CW3^IG氐枚庁1有1¥9S凋U丄HlcMSflfrMn??|C~MSHfirmitj111hiuiiI^uLtinyx>ftdl<pidiilsilrrf.tu!L~>-dii,|j—j.IratnrfHru: .1fillIratnrfHru: .1fill.1A.£H 4*國(guó)*|1乍"艸即屯*甘血EE軒IKt^2t'Vt49%IKIL92mzWMJ14UUfl

⑷丄.n1.44丄U.2*^1Phy^1q?1ftdAr^p*kHFfli-腳-■?YA時(shí)JZZe-M-42-】?jī)?nèi)2?耐即辭2h伽tk2Jb49HUWfeMHU轉(zhuǎn)MTwiwd3fli?R>lcd艸皿1£b1vvi*<ii<■?rlv>kr?iiii11!d^TbARiClnvA丄1機(jī)jihiiiiiLhiuiiIRiiI.LiHHxMIil'ttjihiiiiiLhiuiiIRiiI.LiHHxMIil'ttihiimLruLni^>y>innwith32bytesof伽顯:IC]||1UIIk;l?1曙呼it■會(huì)Ikp1 /IC]||1UIIk;l?1曙呼it■會(huì)Ikp1 /3*i|*liapl^FFWfl?d聊!c屮-mz1▼盟rl錨■:iEL■吉b曬說(shuō)盜if!!rtM.1 ±h賈Lw-盤(pán)2h申応75:ImLm仲I(mǎi)lL-biTTL64TTL-生斗TTL?MPlnoriCnatlic!!亡昌£4f1^2.丄石#?丄■■丄巴FdbuflicEl-'KcibL4^Kcllc1UCldk1?舊心IS.pEl:LbLL聖JKisulhdlId1ipLkIM-lt irilhIi.lli"MkilidilJij:*RViiiiiiiniRi■Hiai:,.HriwiHira■*Aiuir 聊嶋-T_Lu>:j-tAk上H9&cun<ent;齡MidSettinjEMiAniniscrutaF>Birjj?4IrafcHirfHrTH上H9&cun<ent;齡MidSettinjEMiAniniscrutaF>Birjj?4IrafcHirfHrTH: 1t3?1%氐?{口1rit-?m?!r■盅止滬廳g$.19*21^2A42.^1-—AxflFh冥如也L■占dhpEG升Ic-fa-SiH-c*-dWZB dynmlG讐t-FAg鼻-辟-剽 d^wlc亡11三9卍q皿q邑hTtlFiL Jw^ili:Sk-flUi vlyvirijnii:AHARiMMM佻口 inuAlM結(jié)果中的MAC地址為主機(jī)的地址,在ipconfig/all命令可以驗(yàn)證,顯示結(jié)果如下主機(jī)上用步驟步驟5在“網(wǎng)上鄰居”里查看其它的計(jì)算機(jī)查看工作組就能看到在同一工作組里的其他計(jì)算機(jī)。Q4ZML-IS41*時(shí)MkU*(■flUUF鼻E區(qū)亶ttr?aB.-?F驟r.dkr1?L~.?k>□Q4ZML-IS41*時(shí)MkU*(■flUUF鼻E區(qū)亶ttr?aB.-?F驟r.dkr1?L~.?k>□W?T.tjfji-wwfrIihrrr評(píng)?(■里誣X嚴(yán)@1H-X*9*a共、享a共、享更f Ah<J:i££、*.?■>.■工fl朗 F?曲HWfEfx■■嚴(yán)a”i4.I',-.i至>HWfEfx■■嚴(yán)a”i4.I',-.i至>X勺篇亡冷TLj[FTKT口|*師—n二3I4GAnaa!*■IIiT口|*師—n二3I4GAnaa4)總結(jié)通過(guò)此次實(shí)驗(yàn),通過(guò)親自使用arp-a、ping和ipconfig/all指令,讓我了解到這三個(gè)指令的功能及使用方法。通過(guò)這三個(gè)指令,對(duì)地址解析協(xié)議、 IP協(xié)議的工作過(guò)程有了切身的體會(huì),加深了對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的理解。WWW服務(wù)器、FTP服務(wù)器的構(gòu)建1) 實(shí)驗(yàn)?zāi)康腤WW服務(wù)器的構(gòu)建a) 了解WWW的基本概念;b) 了解B/S開(kāi)發(fā)模式的概念c) 熟悉HTTP協(xié)議;d) 掌握常見(jiàn)的WWW服務(wù)器的構(gòu)建方法。FTP服務(wù)器的構(gòu)建a) 了解FTP的基本概念;b) 熟悉FTP協(xié)議;c) 掌握常見(jiàn)FTP服務(wù)器的構(gòu)建方法。2) 實(shí)驗(yàn)環(huán)境在WindowsXP平臺(tái)下,基于IIS或Apache構(gòu)建WWW服務(wù)器,利用IE瀏覽器進(jìn)行測(cè)試。在WindowsXP平臺(tái)下,基于IIS或Serv-U構(gòu)建FTP服務(wù)器,利用Windows自帶的工作于命令方式的ftp程序進(jìn)行測(cè)試。

3)實(shí)驗(yàn)步驟利用Apache構(gòu)建WWW服務(wù)器步驟1安裝步驟2配置http.Conf中常用的配置參數(shù)如下:(1) DocumentRoot該參數(shù)指定Apache服務(wù)器存放網(wǎng)頁(yè)的路徑。默認(rèn)值為:“C://ProgramFiles/ApacheCroup/Apache2/htdocs”(2) Listen該參數(shù)指定Apache服務(wù)器用于監(jiān)聽(tīng)客戶端連接請(qǐng)求的IP地址和端口。標(biāo)準(zhǔn)http服務(wù)器默認(rèn)端口號(hào)是80。(3) ServerName該參數(shù)是用戶自行設(shè)置主機(jī)名,以取代安裝 Apache服務(wù)器主機(jī)的真實(shí)名字(4) MaxKeepAliveRequests當(dāng)使用保持連接功能時(shí),可以用本參數(shù)決定每次連接所能發(fā)出的要求的上限(5) MaxRequestsPerChild該參數(shù)限制每個(gè)子進(jìn)程在結(jié)束前所能處理的請(qǐng)求數(shù)目。步驟3測(cè)試啟動(dòng)瀏覽器并輸入下列URL:http//localhost/或者出現(xiàn)下面頁(yè)面,則表明Apache的安裝、配置是成功的。■IqihB-taa-k'H旦宰"r-i+T|

■IqihB-taa-k'H旦宰"r-i+T|=V* Ml-jr?-窈_=V* Ml-jr?-窈_利用Serv-U構(gòu)建FTP服務(wù)器步驟1安裝按照屏幕上的提示操作執(zhí)行安裝過(guò)程步驟2配置設(shè)置用戶名admin,密碼admin,管理域2260,根目錄D:\步驟3測(cè)試啟動(dòng)Windows的命令行方式,輸入ftp命令,看到如下界面

4)總結(jié)通過(guò)此次實(shí)驗(yàn),我學(xué)會(huì)了Apache和Serv-U服務(wù)器的安裝與配置,通過(guò)親自的安裝,了解到了web服務(wù)器和ftp服務(wù)器的安裝、配置與測(cè)試的方法,使我體會(huì)到了網(wǎng)絡(luò)中服務(wù)層的作用,對(duì)我之后的安裝配置自己的 Web的服務(wù)器有了很大的幫助。串口通訊1)實(shí)驗(yàn)?zāi)康腶) 理解串口通訊和RS-232協(xié)議的原理;b) 掌握RS-232串口的基本連接方法;c) 在Windows環(huán)境下設(shè)計(jì)完成通過(guò)串口進(jìn)行計(jì)算及通訊的程序設(shè)計(jì);d) 掌握ActiveX控件MSComm在VC編程中的使用;e) 掌握CRC編碼的原理及在串口通訊中的應(yīng)用2)實(shí)驗(yàn)環(huán)境PC機(jī)(兩臺(tái))、串口線、WindowsXP操作系統(tǒng)、VC++6.0軟件。兩個(gè)同學(xué)一組,其中一位做接收端,另一位做發(fā)送端。(接收端)3)實(shí)驗(yàn)步驟步驟1硬件連接在本實(shí)驗(yàn)中只要把母槽的串口連接線分別聯(lián)結(jié)兩臺(tái)微機(jī)的九針串口公槽即可。步驟2創(chuàng)建接收端的主程序(1) 創(chuàng)建空的MFC工程打開(kāi)VC環(huán)境,單擊“文件”主菜單的“新建”菜單項(xiàng),在“工程”標(biāo)簽中選擇“MFCAppWizard”選項(xiàng)。(2) 添加MSComm控件選擇”P(pán)roject->AddToProject->->ComponetsandControls”,雙擊IDD_JIESHOU_DIALOG,修改ID為ID_COMMCTRL,再把ID改為IDC_CLEAR,標(biāo)題改為清屏。(3) 設(shè)計(jì)窗體及相應(yīng)變量和函數(shù)設(shè)置設(shè)計(jì)窗體如下二?13"|舄七|亠::]畫(huà)|崗嶄3?CWpHlTJicShQuDHii■\^Alda's-s 冷協(xié)曲1號(hào)二]玉F 劃TillfTieHlunL 值工巾文¥口? [1i11fJieSlwn. IW_nLL町口呵則1_1)1*5&少仙1處1】Fhw也世 up 亞諛itn ritJii■七阿wiuid1七evmiTJi請(qǐng)hu叭f(wàn)JJ-CWill-sJiicShiJuDIu喑CSMIkJirSh?uDI^(CY/r>d*pPa沁DaDifaCx£:hiriy#[CDat?[2HdiiB鴛OnClnjifQ:i>伽飾mm[J?*OiirHiivlH加QiiQuL'ryDruNlluii|]荷OnSysCviriiiKiiUlUHMTnID.ILFdHi_Comni.hlsri*m將ID設(shè)置成IDC_RECEIVE,在ClassName中選擇類(lèi)CjieShouDlg,先在ControlIDs中雙擊ID_COMMCTRL,再在ControlsIDs中雙擊IDC_RECEIVE,將此控件命名為m_Jieshou,類(lèi)型為Cstring,在Messagesx下的文本框中雙擊BN_CLICKED,對(duì)應(yīng)函數(shù)命名為OnClear,再在ObjectIDszhong選擇ID_COMMCTRL,將MSComm控件的對(duì)應(yīng)函數(shù)命名為OnComm。(4)在項(xiàng)目工作區(qū)中選擇ClassView選項(xiàng)卡,單擊打開(kāi)CjieShouDlg類(lèi),在函數(shù)OnInitDialog()中完成MSCommkong控件的初始化。在函數(shù)CJieShoulDlg::OnInitDialog()末尾添加如下程序:BOOLCJieShoulDlg::OninitDialog(){SetIcon(m_hIcon,FALSE);m_Com.SetCommPort(1);m_Com.SetInBufferSize(1024);m_Com.SetOutBufferSize(512);if(!m_Com.GetPortOpen())m_Com.SetPortOpen(TRUE);m_Com.SetInputMode(1);m_Com.SetSettings("9600,n,8,1");m_Com.SetRThreshold(1);m_Com.SetInputLen(0);returnTRUE;}(5)接收字符編輯OnComm()函數(shù)voidCJieShouDlg::OnComm(){VARIANThuiying;char*string;char*qinchustring;intk,nEvent,i;nEvent=m_Com.GetCommEvent();if(nEvent==2){k=m_Com.GetInBufferCount();if(k>0){huiying=m_Com.GetInput();string=(char*)(unsignedchar*)huiying.parray->pvData;}i=0;qinchustring=string;while(i<k){i++;qinchustring++;}*qinchustring='\0';m_Jieshou=+(constchar*)string;UpdateData(FALSE);}//TODO:Addyourcontrolnotificationhandlercodehere}最后為“清屏”按鈕的相應(yīng)函數(shù)voidCJieShouDlg::OnClear(){//TODO:Addyourcontrolnotificationhandlercodeherem_Jieshou.Empty();UpdateData(FALSE);}完成接收端,截圖如下:程序運(yùn)行如下:4)總結(jié)通過(guò)此次實(shí)驗(yàn),通過(guò)自己親自編程設(shè)計(jì)程序,讓我熟悉了串口通訊和RS-232協(xié)議的原理,掌握了RS-232串口的基本連接方法,使我對(duì)計(jì)算機(jī)網(wǎng)絡(luò)有了更深的理解。、選做部分題目:基于Web的新聞發(fā)布系統(tǒng)設(shè)計(jì)要求分析已有的基于Web的新聞發(fā)布系統(tǒng),進(jìn)行需求分析和功能設(shè)計(jì);在數(shù)據(jù)庫(kù)中構(gòu)建數(shù)據(jù)庫(kù)、表或視圖,熟悉數(shù)據(jù)庫(kù)開(kāi)發(fā)流程;根據(jù)新聞發(fā)布系統(tǒng)的功能,條理清晰地設(shè)計(jì)各頁(yè)面和腳本,掌握動(dòng)態(tài)網(wǎng)頁(yè)的制作技術(shù);在時(shí)間允許的情況下,適當(dāng)考慮頁(yè)面的美觀;開(kāi)發(fā)環(huán)境1)硬件條件因系統(tǒng)運(yùn)行負(fù)荷不大,使用個(gè)人計(jì)算機(jī)分別作為服務(wù)器端和客戶端即可。網(wǎng)絡(luò)通訊設(shè)備,包括交換機(jī)、網(wǎng)線等系統(tǒng)平臺(tái)采用Browser/Server體系結(jié)構(gòu),操作系統(tǒng)采用Windows。Web服務(wù)器使用ApacheHTTPServer。服務(wù)器腳本語(yǔ)言選用PHP。數(shù)據(jù)庫(kù)使用MySQL。標(biāo)記語(yǔ)言采用HTML5標(biāo)準(zhǔn)開(kāi)發(fā)工具使用AdobeDreamweaverCS6進(jìn)行網(wǎng)頁(yè)的設(shè)計(jì)與編碼。使用Notepad++完成腳本語(yǔ)言的編寫(xiě)。使用GoogleChromeDeveloperTools調(diào)試網(wǎng)站。運(yùn)行需求客戶端要求擁有一款現(xiàn)代瀏覽器,接入服務(wù)器端所在網(wǎng)絡(luò)即可實(shí)現(xiàn)對(duì)本系統(tǒng)的訪問(wèn)?;驹硇侣劙l(fā)布系統(tǒng)新聞發(fā)布系統(tǒng)(NewsReleaseSystemorContentManagementSystem)又叫做內(nèi)容管理系統(tǒng),是一個(gè)基于新聞和內(nèi)容管理的全站管理系統(tǒng),新聞發(fā)布系統(tǒng)是基于B/S模式的WEBMIS系統(tǒng),本系統(tǒng)可以將雜亂無(wú)章的信息(包括文字,圖片和影音)經(jīng)過(guò)組織,合理有序地呈現(xiàn)在大家面前。當(dāng)今社會(huì)是一個(gè)信息化的社會(huì),新聞作為信息的一部分有著信息量大,類(lèi)別繁多,形式多樣的特點(diǎn),新聞發(fā)布系統(tǒng)的概念就此提出。新聞發(fā)布系統(tǒng)的提出使電視不再是唯一的新聞媒體,從此以后網(wǎng)絡(luò)也充當(dāng)了一個(gè)重要的新聞媒介的功能。與一般的信息系統(tǒng)相比較,新聞發(fā)布系統(tǒng)具有以下特征:是基于B/S模式下的Web信息系統(tǒng),數(shù)據(jù)庫(kù)邏輯相對(duì)簡(jiǎn)單,但數(shù)據(jù)量一般比較龐大;用戶數(shù)量大,服務(wù)器壓力大,是系統(tǒng)設(shè)計(jì)中必須考慮的問(wèn)題之一,而一般的信息系統(tǒng)相對(duì)壓力要少了很多;是一個(gè)開(kāi)放式的系統(tǒng),前臺(tái)瀏覽無(wú)須驗(yàn)證。新聞發(fā)布系統(tǒng)的開(kāi)發(fā)方式主要有以下幾類(lèi):前臺(tái)動(dòng)態(tài)顯示的新聞發(fā)布系統(tǒng)該類(lèi)系統(tǒng)大約占60%的分額,其主要特點(diǎn)是前臺(tái)采用編程語(yǔ)言動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)的內(nèi)容,隨時(shí)更新,該類(lèi)系統(tǒng)設(shè)計(jì)簡(jiǎn)單,適合大多數(shù)中小企業(yè)建站需要,通用性不強(qiáng),一般需要量身定做,不適合大型新聞?wù)军c(diǎn),當(dāng)用戶過(guò)多時(shí),編程語(yǔ)言動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)就勢(shì)必消耗大量的服務(wù)器資源,造成系統(tǒng)運(yùn)行緩慢,甚至崩潰,同時(shí)由于前臺(tái)新聞是動(dòng)態(tài)從數(shù)據(jù)庫(kù)中讀取,導(dǎo)致前端用戶直接接觸到數(shù)據(jù)庫(kù),很容易造成一些不安全的因素,例如:SQLInjection。前臺(tái)靜態(tài)顯示的新聞發(fā)布系統(tǒng)該類(lèi)系統(tǒng)大約占有30%多的市場(chǎng)分額,其主要特點(diǎn)為:前臺(tái)新聞全部生成HTML靜態(tài)文件,前臺(tái)無(wú)須讀取數(shù)據(jù)庫(kù),瀏覽器只需要直接下載HTML文件即可瀏覽新聞,瀏覽速度得到提高,同時(shí)也大大減輕了數(shù)據(jù)庫(kù)服務(wù)器的壓力,該系統(tǒng)后臺(tái)設(shè)計(jì)復(fù)雜需要處理復(fù)雜的模板標(biāo)簽和個(gè)模板之間的邏輯,一般采用三層模式實(shí)現(xiàn),該類(lèi)系統(tǒng)靈活性大,可以通過(guò)模板自定義實(shí)現(xiàn)界面復(fù)雜的前臺(tái)頁(yè)面,一般不需要為某一個(gè)企業(yè)而定做,該系統(tǒng)具有良好的通用性,適合各類(lèi)新聞?wù)军c(diǎn),同時(shí),系統(tǒng)把前端用戶和數(shù)據(jù)庫(kù)分割開(kāi)來(lái),系統(tǒng)的安全性得到大大的提高?;谖谋镜男侣劙l(fā)布系統(tǒng)該系統(tǒng)在市場(chǎng)上占有很少的一部分,主要是把前面的數(shù)據(jù)庫(kù)換成了TXT格式的文本文件,該系統(tǒng)主要缺點(diǎn)是文本文件是無(wú)序的,管理起來(lái)非常麻煩,而且安全性不高,很容易造成數(shù)據(jù)冗余,因此,2013年還沒(méi)有見(jiàn)到該類(lèi)系統(tǒng)的商業(yè)版本,一般都作為個(gè)人用戶使用。d)基于XML數(shù)據(jù)島的新聞發(fā)布系統(tǒng)該系統(tǒng)是新聞發(fā)布系統(tǒng)的一個(gè)發(fā)展趨勢(shì),它用XML數(shù)據(jù)島代替了數(shù)據(jù)庫(kù),XML是一個(gè)有序的數(shù)據(jù)文件,比數(shù)據(jù)庫(kù)的讀取速度更快,但操作起來(lái)沒(méi)有數(shù)據(jù)庫(kù)這么方便,但是由于開(kāi)發(fā)技術(shù)難度大,該類(lèi)系統(tǒng)市場(chǎng)很少見(jiàn)到。本系統(tǒng)采用比較常用,開(kāi)發(fā)也比較簡(jiǎn)單的第一類(lèi)。2)Web服務(wù)原理Web信息存儲(chǔ)于被稱(chēng)為網(wǎng)頁(yè)的文檔中,網(wǎng)頁(yè)是存儲(chǔ)于被稱(chēng)為Web服務(wù)器的計(jì)算機(jī)上,讀取網(wǎng)頁(yè)的計(jì)算機(jī)稱(chēng)為Web客戶端。Web客戶端通過(guò)稱(chēng)為瀏覽器的程序來(lái)查看網(wǎng)頁(yè),主要的瀏覽器有InternetExplorer等。瀏覽器可通過(guò)一個(gè)請(qǐng)求來(lái)讀取某個(gè)服務(wù)器上的一張網(wǎng)頁(yè),請(qǐng)求是一個(gè)包含頁(yè)面地址的標(biāo)準(zhǔn)HTTP請(qǐng)求,頁(yè)面地址類(lèi)似這樣:/page.htm所有的網(wǎng)頁(yè)都含有其如何被顯示的結(jié)構(gòu),瀏覽器通過(guò)閱讀這些結(jié)構(gòu)來(lái)顯示頁(yè)面,最常用的顯示結(jié)構(gòu)稱(chēng)為HTML標(biāo)簽。用于段落的HTML標(biāo)簽類(lèi)似這樣:<p>,在HTML中像這樣定義一個(gè)段落:<p>ThisisaParagraph</p>通常,當(dāng)瀏覽器請(qǐng)求某個(gè)HTML文件時(shí),服務(wù)器會(huì)返回此文件,但是假如此文件含有服務(wù)器端的腳本,那么在此HTML文件作為純HTML被返回瀏覽器之前,首先會(huì)執(zhí)行HTML文件中的腳本。服務(wù)器腳本能動(dòng)態(tài)地向web頁(yè)面編輯、改變或添加任何的內(nèi)容;對(duì)由HTML表單提交的用戶請(qǐng)求或數(shù)據(jù)進(jìn)行響應(yīng);訪問(wèn)數(shù)據(jù)或數(shù)據(jù)庫(kù),并向?yàn)g覽器返回結(jié)果;為不同的用戶定制頁(yè)面;提高網(wǎng)頁(yè)安全性,使您的網(wǎng)頁(yè)代碼不會(huì)通過(guò)瀏覽器被查看到。PHPPHP是一種創(chuàng)建動(dòng)態(tài)交互性站點(diǎn)的強(qiáng)有力的服務(wù)器端腳本語(yǔ)言。PHP是免費(fèi)的,并且使用廣泛。對(duì)于像微軟ASP這樣的競(jìng)爭(zhēng)者來(lái)說(shuō),PHP無(wú)疑是另一種高效率的選項(xiàng)。PHP獨(dú)特的語(yǔ)法混合了C、JavaPerl以及PHP自創(chuàng)的語(yǔ)法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。具備代碼高亮功能的常見(jiàn)文本編輯器因其輕巧靈活常被選作 PHP開(kāi)發(fā)工具,例如:Notepad++、Editplus等等。本系統(tǒng)使用了Notepad++。MySQLMySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)??梢允褂妹钚泄ぞ吖芾鞰ySQL數(shù)據(jù)庫(kù)(命令mysql和mysqladmin),也可以從MySQL的網(wǎng)站下載圖形管理工具M(jìn)ySQLAdministrator,MySQLQueryBrowser和MySQLWorkbench。phpMyAdmin是由php寫(xiě)成的MySQL資料庫(kù)系統(tǒng)管理程程序,讓管理者可用Web界面管理MySQL資料庫(kù)。本系統(tǒng)就采用了phpMyAdmin創(chuàng)建數(shù)據(jù)庫(kù),完成新建表等功能。PHP與MySQL的連接在您能夠訪問(wèn)并處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)之前,您必須創(chuàng)建到達(dá)數(shù)據(jù)庫(kù)的連接。在PHP中,這個(gè)任務(wù)通過(guò)mysql_connect()函數(shù)完成。HTML及HTML5超文本標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用。“超文本”就是指頁(yè)面內(nèi)可以包含圖片、鏈接,甚至音樂(lè)、程序等非文字元素。超文本標(biāo)記語(yǔ)言的結(jié)構(gòu)包括頭部分(Head)、和主體部分(Body),其中頭部(head提供關(guān)于網(wǎng)頁(yè)的信息,主體(body)部分提供網(wǎng)頁(yè)的具體內(nèi)容。網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱(chēng)為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。其主要特點(diǎn)如下:a) 簡(jiǎn)易性:超級(jí)文本標(biāo)記語(yǔ)言版本升級(jí)采用超集方式,從而更加靈活方便。b) 可擴(kuò)展性:超級(jí)文本標(biāo)記語(yǔ)言的廣泛應(yīng)用帶來(lái)了加強(qiáng)功能,增加標(biāo)識(shí)符等要求,超級(jí)文本標(biāo)記語(yǔ)言采取子類(lèi)元素的方式,為系統(tǒng)擴(kuò)展帶來(lái)保證。c) 平臺(tái)無(wú)關(guān)性:雖然個(gè)人計(jì)算機(jī)大行其道,但使用MAC等其他機(jī)器的大有人在,超級(jí)文本標(biāo)記語(yǔ)言可以使用在廣泛的平臺(tái)上,這也是萬(wàn)維網(wǎng)(WWW)盛行的另一個(gè)原因。d) 通用性:另外,HTML是網(wǎng)絡(luò)的通用語(yǔ)言,一種簡(jiǎn)單、通用的全置標(biāo)記語(yǔ)言。它允許網(wǎng)頁(yè)制作人建立文本與圖片相結(jié)合的復(fù)雜頁(yè)面,這些頁(yè)面可以被網(wǎng)上任何其他人瀏覽到,無(wú)論使用的是什么類(lèi)型的電腦或?yàn)g覽器。HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0標(biāo)準(zhǔn)的HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)標(biāo)準(zhǔn)版本;現(xiàn)在仍處于發(fā)展階段,但大部分瀏覽器已經(jīng)支持某些HTML5技術(shù)。HTML5有兩大特點(diǎn):首先,強(qiáng)化了Web網(wǎng)頁(yè)的表現(xiàn)性能。其次,追加了本地?cái)?shù)據(jù)庫(kù)等Web應(yīng)用的功能。廣義論及HTML5時(shí),實(shí)際指的是包括HTML、CSS和JavaScript在內(nèi)的一套技術(shù)組合。它希望能夠減少瀏覽器對(duì)于需要插件的豐富性網(wǎng)絡(luò)應(yīng)用服務(wù)(plug-in-basedrichinternetapplication,RIA),如AdobeFlash、MicrosoftSilverlight,與OracleJavaFX的需求,并且提供更多能有效增強(qiáng)網(wǎng)絡(luò)應(yīng)用的標(biāo)準(zhǔn)集。功能模塊1)網(wǎng)站功能模塊網(wǎng)站分為前后臺(tái),分別供普通用戶瀏覽新聞、管理員管理新聞使用。一、前臺(tái)新聞顯示根據(jù)網(wǎng)站的需要,在主頁(yè)設(shè)置顯示欄目導(dǎo)航,顯示各個(gè)欄目的最新5條新聞等。在每個(gè)欄目的新聞列表頁(yè)中依發(fā)布時(shí)間從后到前排列,且進(jìn)行分頁(yè)。每頁(yè)顯示20條新聞。通過(guò)點(diǎn)擊頁(yè)面數(shù)字切換到其它頁(yè)。新聞頁(yè),用于顯示具體的新聞,并提供評(píng)論功能,用戶可匿名發(fā)表評(píng)論。同時(shí)評(píng)論功能可通過(guò)后臺(tái)管理來(lái)關(guān)閉。二、后臺(tái)管理新聞的添加:輸入新聞標(biāo)題,輸入文章來(lái)源,選擇需要的欄目。添加新聞文章,支持一定的文本格式設(shè)置,如加粗、居中、列表等,支持HTML源代碼顯示,支持圖片上傳和管理。發(fā)布時(shí)將記錄發(fā)布時(shí)間

新聞的編輯:修改已發(fā)布的文章,將記錄最終修改時(shí)間新聞的刪除:刪除已經(jīng)發(fā)布的,但現(xiàn)在不想顯示的文章新聞的評(píng)論關(guān)閉:關(guān)閉當(dāng)前文章的評(píng)論功能。2)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)a)用戶信息表we_users#字段名稱(chēng)數(shù)據(jù)類(lèi)型說(shuō)明1IDbigint(20):用戶編號(hào),自增—2userloginvarchar(60)用戶名3userpassvarchar(64)用戶密碼,MD5方式加密41usernicenamevarchar(50)用戶昵稱(chēng)5useremailvarchar(100)用戶注冊(cè)郵箱地址6userregistereddatetime用戶注冊(cè)時(shí)間 n7userstatusint(11)用戶分組ID#名字類(lèi)型 整理 屬性 空默認(rèn) 額外□11Dbigint(2D) UNSIGNED舌無(wú) ALFTOjNCREMEr^T□2user^login\archart60)utfB_genefal_ci□3user_pass\archar{64)Litf8_genefal_ci 舌□4userjnicename■archar(5D)utf8_general_ci□SusEr_email\archart100)Litf8_genefal_ci 吾□6usereregistereddatetime 舌OODO-OD-CX)OOzOOW1user^statusint<11)b)狀態(tài)表we_status

#字段名稱(chēng)數(shù)據(jù)類(lèi)型說(shuō)明1statusidsmallint(2)狀態(tài)編號(hào)2statusnamevarchar(10)狀態(tài)名稱(chēng)statusidstatusname1已發(fā)布2未發(fā)布3已刪除8評(píng)論開(kāi)放9評(píng)論關(guān)閉#名字類(lèi)規(guī) 整理 屬性空默認(rèn)鎖外廠11statusidsmailing2) 否£|2siatusnamevarchar(10)utf3generalci 否無(wú)c)欄目表we_termsd)評(píng)論表d)評(píng)論表we_comments#字段名稱(chēng)數(shù)據(jù)類(lèi)型說(shuō)明1cmidbigint(20)評(píng)論編號(hào),自增12postidbigint(20)評(píng)論所在文早的ID:3cmcontenttext評(píng)論內(nèi)容#字段名稱(chēng)數(shù)據(jù)類(lèi)型說(shuō)明1termidbigint(20)欄目編號(hào),自增2namevarchar(200)欄目名稱(chēng)3parentbigint(20)父欄目IDterm」dnameparent0首頁(yè)10:1資訊02公告03服務(wù):0:4頭條新聞1這里的部分欄目父欄目為0,意思是欄目直接位于首頁(yè)下。而這里的頭條新聞是資訊的子欄目。#客字 摟型 整理屬性空默認(rèn)敵外Fl1termidbiqint(20)UNSIGNED書(shū)tALTO_fNCREMENT2namevarchar(200)utf8qeneral_ci不□3parentbigint(20) UNSIGNED舌0

4cmdate datetime 評(píng)論時(shí)間#名字類(lèi)型 蔓理 層性 空默認(rèn)斬外n1cmid biaint(201 UNSIGNED古耒AUTOINCREMENT□2postjdbigint(20) 舌■無(wú)3cmcontenttext utiBgeneralci 檸~~|4cmdatedatetime 舌無(wú)e)新聞內(nèi)容表weposts#名字類(lèi)型說(shuō)明1IDbigint(20)新聞編號(hào),自增2postauthorvarchar(16)新聞發(fā)布者用戶ID3postsourcevarchar(60)新聞來(lái)源4postdatedatetime新聞發(fā)布日期時(shí)間5postcontentIongtext新聞內(nèi)容6posttitletext新聞標(biāo)題7poststatusint(2)新聞狀態(tài)ID,可為westatus中的1,2,38commentstatusint(2)新聞評(píng)論狀態(tài)ID,可為westatus中的8,99postmodifieddatetime新聞最后修改時(shí)間10menuorderint(11)新聞欄目ID#名字類(lèi)型 整理 屬性 空默認(rèn) 額外□1iobigint(2O) UNSIGNED否無(wú) AUIOJNCREMENT□ 2post_author^archar(16)utf&_general_ci 否.無(wú)□ 3postsource varchar(60)ut10_gene陽(yáng)l_ci 否無(wú)□ 4post_dat&datetime 否 00:00:005postcontentlongtextutra_general_ci 否無(wú)□ 6postjitletext utf3_general_ci 否.無(wú)7poststatusint(2) 否1□Bcomment_statusint(2) 否a□ 9postmodifieddatetime 否0000-00-00OOzOOiOO□10menu_order否□服務(wù)器端設(shè)計(jì)PHPSessior變量當(dāng)您運(yùn)行一個(gè)應(yīng)用程序時(shí),您會(huì)打開(kāi)它,做些更改,然后關(guān)閉它。這很像一次會(huì)話。計(jì)算機(jī)清楚你是誰(shuí)。它知道你何時(shí)啟動(dòng)應(yīng)用程序,并在何時(shí)終止。但是在因特網(wǎng)上,存在一個(gè)問(wèn)題:服務(wù)器不知道你是誰(shuí)以及你做什么,這是由于HTTP地址不能維持狀態(tài)。通過(guò)在服務(wù)器上存儲(chǔ)用戶信息以便隨后使用,PHPsession解決了這個(gè)問(wèn)題。Session的工作機(jī)制是:為每個(gè)訪問(wèn)者創(chuàng)建一個(gè)唯一的id(UID),并基于這個(gè)UID來(lái)存儲(chǔ)變量。UID存儲(chǔ)在cookie中,亦或通過(guò)URL進(jìn)行傳導(dǎo)。在本系統(tǒng)中,需要使用Session來(lái)存放用戶ID等信息。當(dāng)在后臺(tái)頁(yè)面點(diǎn)擊登錄后,結(jié)果數(shù)據(jù)庫(kù)查詢(xún),確認(rèn)用戶名和密碼正確后,便把用戶ID存放在Session中。這樣在后臺(tái)每一個(gè)涉及管理權(quán)限的頁(yè)面中,通過(guò)檢查 Session中的內(nèi)容,即可確認(rèn)當(dāng)前是否已經(jīng)登錄,且可獲取到登錄ID進(jìn)行相關(guān)的SQL查詢(xún)。若Session中沒(méi)有存放用戶ID,則跳轉(zhuǎn)到登錄頁(yè)面。b) PHP$_GET變量$_GET變量是一個(gè)數(shù)組,內(nèi)容是由 HTTPGET方法發(fā)送的變量名稱(chēng)和值。$_GET變量用于收集來(lái)自method="get"的表單中的值。從帶有GET方法的表單發(fā)送的信息,對(duì)任何人都是可見(jiàn)的(會(huì)顯示在瀏覽器的地址欄) ,并且對(duì)發(fā)送的信息量也有限制(最多100個(gè)字符)。在本系統(tǒng)中,除去首頁(yè)的每一個(gè)頁(yè)面,都由GET或POST的方式獲取到URL中的變量值后,再確定頁(yè)面要發(fā)送什么內(nèi)容給客戶端。例如,要訪問(wèn) ID=1的文章,它的URL為http://localhost/ch/article.php?id=1,含有id變量。通過(guò)獲取id變量的值,加入到SQL查詢(xún)中,再返回id=1的文章的有關(guān)信息。再如發(fā)布新聞的頁(yè)面URL為http://localhost/admin/my.php?add=true即在my.php頁(yè)面中提交值為true的add變量,便可返回涉及發(fā)布文章的頁(yè)面。c) PHP$_POST變量與$_GET類(lèi)似,$_POST變量是一個(gè)數(shù)組,內(nèi)容是由 HTTPPOST方法發(fā)送的變量名稱(chēng)和值。$_POST變量用于收集來(lái)自method="post"的表單中的值。從帶有POST方法的表單發(fā)送的信息,對(duì)任何人都是不可見(jiàn)的(不會(huì)顯示在瀏覽器的地址欄),并且對(duì)發(fā)送信息的量也沒(méi)有限制。在本系統(tǒng)中,登錄的表單、發(fā)布新聞的表單、編輯新聞的表單,點(diǎn)擊提交按鈕后都是通過(guò)POST方式發(fā)送信息的。發(fā)送的信息亦或是需要加密的信息,亦或是發(fā)送的量比較大,不能使用GET。d) 頁(yè)面關(guān)聯(lián)通過(guò)PHPinclude和require語(yǔ)句,可將一個(gè)頁(yè)面拆分成多個(gè)文件。通過(guò)require請(qǐng)求運(yùn)行其它php文件中的腳本,返回特定信息,嵌入到當(dāng)前文件中。例如,假設(shè)我們有一個(gè)在所有頁(yè)面中使用的標(biāo)準(zhǔn)菜單文件:"menu.php":echo'<ahref="/default.php">Home</a><ahref="/tutorials.php">Tutorials</a><ahref="/references.php">References</a><ahref="/examples.php">Examples</a><ahref="/about.php">AboutUs</a><ahref="/contact.php">ContactUs</a>';網(wǎng)站中的所有頁(yè)面均應(yīng)引用該菜單文件。這是具體的做法:<html><body><divclass="leftmenu">v?phpinelude'menu.php';?>v/div><h1>Welcometomyhomepage.</h1>vp>Sometext.v/p>v/body></html>在本系統(tǒng)中,后臺(tái)有一個(gè)主php文件,通過(guò)require其它php文件,嵌入其它php文件中的腳本運(yùn)行內(nèi)容,例如在主頁(yè)面get到update=1,就會(huì)請(qǐng)求delete.php文件。具體的代碼如下:if(isset($_GET['delete'])){$articlelD=$_GET['delete'];require('my/delete.php');}通過(guò)這樣的方式,減少不同文件中的重復(fù)內(nèi)容,實(shí)現(xiàn)低耦合,高聚合。關(guān)于服務(wù)器端文件的具體結(jié)構(gòu)如下:/admin/myadd.phpadd_s.phpclose.phpdelete.phphome.phpupdate.phpupdate_s.phplogin.php(后臺(tái)登錄頁(yè)面)login_s.php(登錄提交腳本)logout.php(注銷(xiāo)腳本)my.php(通過(guò)require/my文件夾下各文件,實(shí)現(xiàn)各功能模塊)/charticle.php(新聞?wù)捻?yè))cm_s.php(評(píng)論提交腳本)index.php(首頁(yè))list.php(新聞列表頁(yè))設(shè)計(jì)步驟1)服務(wù)器的安裝安裝集成有Apache,PHP,MySQL的XAMPPControlPanel,打開(kāi)軟件,啟動(dòng)Apache,MySQL的服務(wù)。在httpd.conf文件中修改DocumentRoot為存放頁(yè)面的路徑。XAMPPControlP^nelv3-1-03.1.0|[Compiled:Septembe『20th2012]XAMPPControlPanelv3.1.03,1.0ModkJlesServiceModlLilePIO(s}左阿3216ActionsStopAdminMfSQL17363306StopAdminFileZlla導(dǎo)tenAfoninMeiCuPyStBfl:Admin■Rwcal:StartConfigCorffigConfigConfigConfigXAMPPControlP^nelv3-1-03.1.0|[Compiled:Septembe『20th2012]XAMPPControlPanelv3.1.03,1.0ModkJlesServiceModlLilePIO(s}左阿3216ActionsStopAdminMfSQL17363306StopAdminFileZlla導(dǎo)tenAfoninMeiCuPyStBfl:Admin■Rwcal:StartConfigCorffigConfigConfigConfig20124:3720:24i2S20:34:3420:24:3320-24:3920典20202020202024:4024:4024:4024:402m24;4025:0525:05[Apache][mysg|][Apacho][Apache][Apnrhr][Apache][Apache][Apache][Apinchr][Apuch?][Apache][Apache]AttempiingI?ingtcStatuschangeAttemptin^toStatus亡h也:ngfStatyRchninig^Error;ApachestartApacheupp...start-MySOI.?pp,B,■detectcd:runningstartApachoapp.□bdete^Led:runningde-te-ctrdJ^1.nppedshutdarnuracxpcctedly?ThisHayb<?dueto日blockedport,nibsiukdepcndcncieBPinproperprivi acra^h,.or且shuLdovnbyanatherMthcHi.the*/Aanpp/JtpMEhe-/1 rfofelag- 11andtheWindowsEventVie<erf^rmareAttemptinstostartApache吐口甘,■>?StatusehanR#dete-cted:running2)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)點(diǎn)擊MySQL的Admin按鈕,進(jìn)入phpMyAdmin,進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù):CREATEDATABASEwecmsSETutf8COLLATEutf8generalci;表的結(jié)構(gòu)weusersCREATETABLEwe_users('ID'bigint(20)unsignedNOTNULLAUTO_INCREMENT,'user_login'varchar(60)NOTNULL,'user_pass'varchar(64)NOTNULL,'user_nicename'varchar(50)NOTNULL,'user_email'varchar(100)NOTNULL,'user_registered' datetimeNOTNULLDEFAULT'0000-00-0000:00:00','user_status'int(11)NOTNULLDEFAULT'0',PRIMARYKEY('ID'));--表的結(jié)構(gòu)'we_status'CREATETABLE'we_status'('status_id'smallint(2)NOTNULL,'status_name'varchar(10)NOTNULL,PRIMARYKEY('status_id'));--表中的數(shù)據(jù)'we_status'INSERTINTO'we_status'('status_id','status_name')VALUES(1,'已發(fā)布'),(2,'未發(fā)布'),(3,'已刪除'),(8,'評(píng)論開(kāi)放'),(9,'評(píng)論關(guān)閉');--表的結(jié)構(gòu)、we_terms'CREATETABLE'we_terms'('term_id'bigint(20)unsignedNOTNULLAUTO_INCREMENT,'name'varchar(200)NOTNULL,'parent'bigint(20)unsignedNOTNULLDEFAULT'0',PRIMARYKEY('term」d'),);--表中的數(shù)據(jù)'we_terms'INSERTINTO'we_terms'('term」d','name','parent')VALUES(0,'首頁(yè)',0),(1,'資訊',0),(2,'公告',0),(3,'服務(wù)',0),(4,'頭條新聞',1);CREATETABLEIFNOTEXISTS、we_comments'('cm_id'bigint(20)unsignedNOTNULLAUTO_INCREMENT,'post_id'bigint(20)NOTNULL,'cmcontent'textNOTNULL,

'cm_date'datetimeNOTNULL,PRIMARYKEY('cm」d'));編輯表間的主-外鍵關(guān)系后,實(shí)現(xiàn)如下圖所示關(guān)系wecommentsjcm_jdibigint(2O)unsignedttpostid:wecommentsjcm_jdibigint(2O)unsignedttpostid:bigint^20).■ID:biglnt(20}unsignedpostauthorzvarcharf116)團(tuán)pwe_users'&ID:t)iginL(2O)unsigned=userlogin:vanchar(60)cm_content:textcm_content:textpost^source:varctiar(60}user_pass.varcbwr(64)7crn_dale:datelirne3 ?■?'fj-.we_terms■i7crn_dale:datelirne3 ?■?'fj-.we_terms■itsnpjd.:blgint(2O]unsignedjnanne;varchar(200)箱parent:bigint.(201unsigned3posldale:datetimepost_cantent:longtextposl^liUe:texlHpoststatus:int(2}usernicenarne:varchar(BO)wuser^email:varchar(ioo)tuser_registeredidatelrne#user_statu&:int(11)hcomment_statusint{2)7]pO5lmodified:datetimenmcnu^ordor'int[11\westatus.!statusid:srn3llint(2;status_naii)e:varchar(W)完成數(shù)據(jù)庫(kù)表的設(shè)計(jì)和基本信息的插入后,設(shè)置數(shù)據(jù)庫(kù)與網(wǎng)頁(yè)的連接。連接文件如下。其中第一句session_start(用于向客戶端加入Seesion變量。conn,phpv?phpsession_start();$db_host='localhost';$db_username='root';$db_password='root';$db_database='wecms';$db=mysql_connect($db_host,$db_username,$db_password,$db_database);mysql_select_db('wecms');mysql_query("setnamesutf8");if(mysqli_connect_errno()){echo" 連接數(shù)據(jù)庫(kù)失敗!";exit;}return$db;?>之后的每一個(gè)涉及到數(shù)據(jù)庫(kù)查詢(xún)、插入、編輯的頁(yè)面,均需先 require本頁(yè)面。3)SQL查詢(xún)的設(shè)計(jì)獲取某個(gè)目錄下最新的5篇文章ID與標(biāo)題,用于首頁(yè)的標(biāo)題顯示和新聞?wù)捻?yè)的超鏈接(顯示新聞?wù)男枰褂?get方法提交新聞ID)。因?yàn)榘l(fā)布的新聞post_status應(yīng)為1,故在where中添加該條件,可過(guò)濾已經(jīng)被刪除或還未發(fā)布的新聞。SELECTID,post_titleFROMwe_postsWHEREmenu_order=1ANDpoststatus=1ORDERBYIDDESCLIMIT0,5 b)_獲取某個(gè)目錄的名稱(chēng)。用于在新聞列表顯示當(dāng)前目錄的名稱(chēng)SELECTnameFROMwetermsWHEREterm」d=$menulDc)獲取某個(gè)目錄的新聞條數(shù)。用于在新聞列表計(jì)算需要多少頁(yè)來(lái)顯示新聞。同樣,設(shè)置post_status=1的條件。selectcount(*)fromwe_postsWHEREmenu_order=$menulD ANDpoststatus=1d)根據(jù)頁(yè)碼數(shù)顯示一定范圍內(nèi)某個(gè)目錄的新聞標(biāo)題、 ID,用于新聞列表顯示新聞和鏈接。其中的$offset,$pagesize是php變量,由當(dāng)前頁(yè)碼數(shù)和每頁(yè)需要顯示的標(biāo)題數(shù)決定,計(jì)算規(guī)則詳見(jiàn)前臺(tái)頁(yè)面設(shè)計(jì)部分。SELECTID,post_titleFROMwe_postsWHEREnenu_order=$menulDANDpoststatus=1ORDERBYIDDESClimit$offset,$pagesizee)獲取某個(gè)新聞的標(biāo)題、內(nèi)容、發(fā)布時(shí)間等信息。其中,post_date在SQL查詢(xún)過(guò)程中進(jìn)行了格式化。SELECTpost_status, post_title , post_source,DATE_FORMAT(post_date,'%Y-%m-%d%H:%i' )d,post_content,menu_order, nameFROMwe_posts,we_termsWHEREID=$IDANDtermid=menuorderf)判斷是否允許評(píng)論。如果允許評(píng)論,則繼續(xù)查詢(xún),返回新聞對(duì)應(yīng)的評(píng)論內(nèi)容,并顯示評(píng)論發(fā)布框。(詳見(jiàn)前臺(tái)頁(yè)面設(shè)計(jì)部分)SELECT*FROMwepostsWHEREID=$IDANDcommentstatus=8按時(shí)間倒序顯示某個(gè)新聞對(duì)應(yīng)的評(píng)論。SELECTcm_content,DATE_FORMAT(cm_date,'%Y-%m-%d%H:%i')dFROMwe_comments,we_postsWHEREpost_id=$IDANDpost_id=IDANDcommentstatus=8ORDERBYcm」dDESCh)向數(shù)據(jù)庫(kù)插入新的評(píng)論。其中now()函數(shù)表示當(dāng)前時(shí)間戳INSERTINTOwe_comments (post_id,cm_contentVALUES($id,'$cm',NOW()),cm_date )i)查詢(xún)用戶名密碼是否正確,用于后臺(tái)登錄提交。SELECTIDFROMwe_usersWHEREuser_login='$usn'anduser_pass='$psw'limit0,1j) 顯示可用目錄的ID和文件名,用于新聞發(fā)布和新聞編輯時(shí),目錄選擇表單的顯示和值的設(shè)置。SELECTterm」d, nameFROMwe_termsWHEREterm」d<>0 ORDERBYterm」dk) 向數(shù)據(jù)庫(kù)中插入新的新聞。INSERTINTOwe_posts(post_title,post_source,menu_order,post_content,post_author,post_date)VALUES('$title','$source',$menu,'$content',$userid,NOW())向數(shù)據(jù)庫(kù)中更新已有的新聞內(nèi)容。 將用當(dāng)前時(shí)間戳更新post_modified最后更新時(shí)間。UPDATEwe_postsSETpost_title='$title',post_source='$source',menu_order=$menu,postcontent='$content',postmodified=NOW()WHEREID=$articlelDm) 刪除文章。不是簡(jiǎn)單的從數(shù)據(jù)庫(kù)中刪除文章,因?yàn)樵摬僮鞑豢沙蜂N(xiāo)。將post_status設(shè)置成已刪除的狀態(tài)即可。UPDATEwe_postsSETpost_status=3WHEREID=$articleIDandpoststatus=1n)恢復(fù)文章、關(guān)閉評(píng)論、開(kāi)啟評(píng)論與刪除文章方法類(lèi)似,此處代碼略,可見(jiàn)后臺(tái)頁(yè)面設(shè)計(jì)部分源代碼。4)前臺(tái)頁(yè)面的設(shè)計(jì)與實(shí)現(xiàn)a)首頁(yè)ch/index.php該頁(yè)面中,通過(guò)3次SQL查詢(xún),分別顯示3個(gè)目錄下的最新5條新聞。每個(gè)新聞都設(shè)置了超鏈接,通過(guò)get提交文章ID,跳轉(zhuǎn)到article.php中。為目錄也設(shè)置了超鏈接,通過(guò)get提交目錄ID,跳轉(zhuǎn)到list.php中,顯示目錄下的文章列<!doctypehtml><html><head><metacharset="utf-8"><title>首頁(yè)</title><linktype="text/css"rel="stylesheet"href="../css/reset.css"><linktype="text/css"rel="stylesheet"href="../css/index.css"></head><body><header><divid="menubar"class="clearfix">vdivclass="wrap"><ulid="menu"class="inline-style"><li><ahref="#">首頁(yè)</a>v/li><li><ahref="list.php?menu=1"> 資訊 </a></li><li><ahref="list.php?menu=2"> 公告 </a></li><li><ahref="list.php?menu=3"> 服務(wù) </a></li></ul></div></div></header><divid="indexContent"class="clearfixwrap"><divid="info"class="section">更多<divclass="bar"><ahref="list.php?menu=1"title="資訊">更多<h2>資訊</h2><span>更多>></span>v/a>v/div><divclass="box"><ulclass="listhas-style"><?phprequire_once("../conn.php");$sql="SELECTID,post_titleFROMwe_postsWHEREmenu_order=1ANDpost_status=1ORDERBYIDDESCLIMIT0,5";$result=mysql_query($sql);while($row=mysql_fetch_array($result)){一一?><li><ahref="article.php?id=v?=$row['ID']?>"x?=$row['post_title']?></a></li><?php}?></ul></div></div><divid="post"><divclass="bar"><a href="list.php?menu=2"title="更多公告"><h2>公告</h2><span>更多>></span>v/a>v/div><divclass="box"><ulclass="listhas-style"><?php$sql="SELECTID,post_titleFROMwe_postsWHEREmenu_order=2ANDpost_status=1ORDERBYIDDESCLIMIT0,5";$result=mysqlquery($sql);while($row=mysql_fetch_array($result)){一一?x|i><ahref="article.php?id=v?=$row['ID']?>"x?=$row['post_title']?></a>v/li><?php}?></ul></div></div><divid="service"><divclass="bar"><ahref="list.php?menu=3"title=" 更多服務(wù)"><h2>服務(wù)</h2><span>更多>></span>v/a>v/div><divclass="box"><ulclass="listhas-style"><?php$sql="SELECTID,post_titleFROMwe_postsWHEREmenu_order=3ANDpost_status=1ORDERBYIDDESCLIMIT0,5";$result=mysql_query($sql);while($row=mysql_fetch_array($result)){一一?><li><ahref="article.php?id=v?=$row['ID']?>"x?=$row['post_title']?></a></li><?php}?></ul></div></div></div><footer><p>Copyright©1993-2014Wills.AllRightsReserved.</p></footer></body></html>ch/list.php頁(yè)面一開(kāi)始執(zhí)行腳本,判斷是否有通過(guò) get提交menu變量,如果沒(méi)有,設(shè)置menuID值缺省為1,否則按提交的變量設(shè)置。根據(jù)menuID變量的值,執(zhí)行SQL查詢(xún)。因?yàn)樾侣劦臄?shù)量可能較多,需加入分頁(yè)功能。分頁(yè)功能的源代碼中通過(guò)注釋的方式進(jìn)行了解釋說(shuō)明。通過(guò)判斷是否有 get提交page變量,設(shè)置要顯示第幾頁(yè)的新聞列表。v?phprequire,once("../conn.php");if(isset($_GET['menu'])){$menulD=$_GET['menu'];}else{$menuID=1;}$sql="SELECTnameFROMwe_termsWHEREterm」d=$menulD";$result=mysql_query($sql);$row=mysql_fetch_array($result);?><!doctypehtml><html><head><metacharset="utf-8"><title>v?=$row['name']?></title><linktype="text/css"rel="stylesheet"href="../css/reset.css"><linktype="text/css"rel="stylesheet"href="../css/index.css"></head><body><divid="path"class="wrap"><ahref="index.php"title=" 首頁(yè)">首頁(yè)</a>><ahref="#"title="v?=$row['name']?>"x?=$row['name']?x/a>v/div><divid="content"class="clearfixwrap"><divid="mainCon"><divclass="section"><divclass="box"style="margin-bottom:30px;"><?php//分頁(yè)代碼開(kāi)始$pagesize=10;// 設(shè)置每頁(yè)顯示條數(shù)$rs=mysql_query("select count(*) fromwe_postsWHEREmenu_order=$menulDANDpost_status=1");//取得記錄總數(shù),計(jì)算總頁(yè)數(shù)用$myrow=mysql_fetch_array($rs);$numrows=$myrow[0];// 計(jì)算總記錄$pages=intval($numrows/$pagesize);if($numrows%$pagesize!=0)$pages++;// 設(shè)置頁(yè)數(shù)if(isset($_GET['page'])){$page=intval($GET['page']);// 獲取要顯示的頁(yè)碼}else{$page=1;// 無(wú)參數(shù)傳入,設(shè)為第一頁(yè)}/*page過(guò)界檢查*/$page=min($page,$pages);$page=max(1,$page);$offset=$pagesize*($1);〃 計(jì)算記錄偏移量//分頁(yè)代碼結(jié)束$sql="SELECTID,post_titleFROMwe_postsWHEREmenu_order=$menulDANDpost_status=1ORDERBYIDDESClimit$offset,$pagesize";$result=mysql_query($sql);$num=mysql_num_rows($result);if($num>0){?><ulclass="listhas-style"><?phpwhile($row=mysql_fetch_array($result)){?><li><ahref="article.php?id=v?=$row['ID']?>">v?=$row['post_title']?></a></li><?php}?></ul><ulclass="page"><?phpif($page>2)echo"<li><ahref=?menu=".$menulD."&page=1> 首頁(yè)</a></li>";if($page!=1)echo"<li><ahref=?menu=".$menulD."&page=".($1)."> 上一頁(yè)</a></li>";if($page>2)echo"<li><ahref=?menu=".$menulD."&page=".($2).">".($2)."v/a>v/ii>";if($page>1)echo"<li><ahref=?menu=".$menulD."&page=".($1).">".($1)."</a></li>";echo"<li>".$page."v/li>";if($page<=$pages-1)echo"<li><ahref=?menu=".$menulD."&page=".($page+1).">".($page+1)."</a></li>";if($page<=$pages-2)echo"<li><ahref=?menu=".$menulD."&page=".($page+2).">".($page+2)."v/a>v/li>";if($page!=$pages)echo"<li><ahref=?menu=".$menulD."&page=".($page+1)."> 下一頁(yè)</a></li>";if($page<=$pages-2)echo"<li><ahref=?menu=".$menulD."&page=".$pages."> 末頁(yè)</a></li>";?></ul><?php}else{echo'暫無(wú)文章';}?></div></div></div><divstyle="clear:both"x/div></div></body></html>新聞內(nèi)容頁(yè)ch/article.php通過(guò)get提交的變量的判斷,類(lèi)似新聞列表頁(yè)。新聞內(nèi)容頁(yè)需要注意的是避免已刪除新聞的顯示。因?yàn)橐恍┬侣効赡苤鞍l(fā)表過(guò),但后來(lái)因?yàn)橐恍┰騽h除,但因?yàn)槭褂胓et的方式提交變量而獲取新聞內(nèi)容。通過(guò)保存頁(yè)面鏈接的方式,用戶有可能在新聞刪除后再次訪問(wèn)本頁(yè)面。因此,需要先判斷文章是否被刪除。當(dāng)查詢(xún)到post_status不等于1時(shí)即表明新聞不應(yīng)該被顯示??芍苯邮褂脤?duì)話框提示后結(jié)束腳本執(zhí)行。<?phprequire,once("../conn.php");if(isset($_GET['id'])){$ID=$_GET['id'];}else{$ID=1;}$_SESSION['id']=$ID;$sql="SELECTpost_status,post_title,post_source,DATE_FORMAT(post_date,'%Y-%m-%d%H:%i')d,post_content,menu_order,nameFROMwe_posts,we_termsWHEREID=$IDANDterm」d=menu_order";$result=mysql_query($sql);$row=mysql_fetch_array($result);if($row['post_status']!=1){_echo'<script>alert(" 該文章不存在或已刪除");</script>';exit;}?><!doctypehtml><html><head><metacharset="utf-8"><title>v?=$row['post_title']?x/title><linktype="text/css"rel="stylesheet"href="../css/reset.css"><linktype="text/css"rel="stylesheet"href="../css/index.css"></head><body><divid="path"class="wrap"><ahref="index.php"title=" 首頁(yè)">首頁(yè)</a>><ahref="list.php?menu=<?=$row['menu_order']?>"title="資訊"><?=$row['name']?x/a>v/div><divid="content"class="clearfixwrap"><divid="mainCon"><divclass="section"><h2id="title"><?=$row['post_title']?x/h2><divid="articleTime"x?=$row['d']?>    <?=$row['post_source']?x/div><divid="article"x?=$row['post_content']?></div></div>v?php$sql="SELECT*FROMwe_postsWHERED=$IDANDcomment_status=8";$result=mysql_query($sql);$num=mysql_num_rows($result);if($num>0){?><divclass="section"style="padding-bottom:40px;width:430px;">vformaction="cm_s.php"method="post"><textareaname="cm"cols="50"rows="5"x/textarea><inputname=""type="submit"value="評(píng)論"></form><?php}$sql="SELECTcm_content,DATE_FORMAT(cm_date,'%Y-%m-%d%H:%i')dFROMwe_comments,we_postsWHEREpost_id=$IDANDpost_id=IDANDcomment_status=8ORDERBYcm」dDESC";$result=mysql_query($sql);$num=mysql_num_rows($result);if($num>0){while($row=mysql_fetch_array($result)){?><divclass="cm_p"xpx?=$row['cm_content']?></p><pstyle="float:right"x?=$row['d']?

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論