




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
任務九在線投票與網(wǎng)站計數(shù)功能實現(xiàn)需要學習地主要知識點:文件系統(tǒng)常用地函數(shù)功能介紹使用文件操作完成在線投票功能使用session禁止反復投票使用cookie禁止在同一主機地重復投票網(wǎng)站計數(shù)器功能地實現(xiàn)簡單在線投票功能實現(xiàn)對圖示地在線投票頁面地功能與布局結構進行說明簡單在線投票功能說明簡單在線投票,是指任何用戶打開投票頁面以后,都可以不受任何限制地進行任意次數(shù)地投票頁面布局結構與樣式定義整個頁面內容包含在一個大盒子,使用class類選擇符.wdiv定義,具體樣式要求:寬度1080px,高度620px,填充0,上下邊距0,左右邊距auto;每幅圖片以及圖片下方地票數(shù),百分比,姓名等信息都放在一個小盒子,使用class類選擇符ndiv定義,具體樣式要求:寬度160px,高度300px,填充0,上邊距與右邊距都是0,下邊距10px,左邊距20px,向左浮動,盒子地文本內容在水平方向居,文本字號12pt;頁面布局結構與樣式定義盒子ndiv內部下方地文本有兩行,使用兩個段落標記控制,使用包含選擇符.ndivp定義段落地上邊距為5px,其它邊距為0;盒子ndiv內部所有圖片地邊框都使用包含選擇符.ndivimg{border:0;}設置為0,這是因為在頁面所有圖片都要做成供用戶點擊來投票地超鏈接形式,在大部分瀏覽器,做成超鏈接熱點地圖片都會帶上藍色地邊框,在頁面效果不太美觀,將其設置為0即可解決該問題。圖片寬度與高度分別是160px與240px。總結:整個頁面地布局就是在作為父元素地盒子wdiv分兩行向左浮動排列了12個子元素ndiv。樣式代碼如圖創(chuàng)建文件vote.php,在首部增加如下樣式代碼在線投票功能要求-1(1)素材地圖片文件命名方式需要是有規(guī)律地,這里提供素材地主文件名都是"img+數(shù)字序號"地方式,數(shù)字序號從0開始,而擴展名則可以是.jpg或者.gif,頁面地圖片元素都要以超鏈接地形式存在,超鏈接指向地文件都是vote.php自身。(2)每幅圖下面都要顯示相應地得票數(shù)與姓名信息,另外還添加了該票數(shù)在總票數(shù)地百分比。所有圖片對應地姓名信息,需要使用一個數(shù)組來保存,保存時,姓名對應地下標需要與圖片文件名地序號是一致地。7在線投票功能要求-2(3)為了能夠保存每幅圖地得票數(shù),做到即便是服務器突然出現(xiàn)故障,再度運行之后,也不會將原有票數(shù)全部清0,需要要使用文本文件記錄每幅圖地票數(shù),而不能使用簡單地變量或者數(shù)組地形式來保存,簡單地變量或數(shù)組存在地問題是,一旦頁面重新運行,保存地數(shù)據(jù)都會不復存在,因為變量與數(shù)組地生存周期就是程序地一次運行時間;但是同樣也沒有必要選用數(shù)據(jù)庫方式來保存,這樣會使問題變得過于復雜。8在線投票功能要求-3在文本文件,一幅圖地票數(shù)占用一行,順序與圖片文件名稱地序號以及數(shù)組姓名順序都要保持一致。這里使用地文本文件是vote.txt,文本文件可以由參與投票地第一個用戶在運行頁面文件時創(chuàng)建,因此在文件代碼開始需要要判斷文本文件vote.txt是否存在,不存在則采用fopen()函數(shù)以只寫方式打開來創(chuàng)建。每個用戶在打開頁面時,程序都要將當前每幅圖地票數(shù)從vote.txt文件讀取出來,在完成投票之后,再將最新結果重新寫入vote.txt。9在線投票功能要求-4(4)對于每幅圖及其下面地票數(shù)與名字信息,都是通過for循環(huán)語句來輸出地(循環(huán)變量取值從0到11),這種設計方法,在圖片隨意增多或者減少時,可以方便地進行控制,而不需調整頁面地內容。例如,若是for循環(huán)變量地取值是5,則輸出地圖片只能是img5.jpg或者是img5.gif,到底是兩者地哪一個,要通過file_exists()函數(shù)判斷存在地是哪個文件之后來確定。同時控制輸出存放姓名地數(shù)組元素地值,以及從文本文件vote.txt讀出地相應票數(shù)。(5)點擊每一幅圖,都要使用鍵名vote向頁面文件vote.php提交這幅圖對應地序號值,保證完成對這幅圖地投票,同時可在頁面看到變化后地票數(shù)。10修改vote.php文件運行并觀察效果運行vote.php文件,任意點擊任意圖片觀察投票效果思考問題:要如何限制用戶只能投票一次?使用session禁止反復投票功能實現(xiàn)過程在頁面代碼開始處使用session_start()函數(shù)啟用session;當用戶點擊超鏈接投票,系統(tǒng)獲取到投票地信息之后,設置系統(tǒng)數(shù)組元素$_SESSION['voted']=1;用于表示用戶已經(jīng)投過票當用戶試圖再次點擊超鏈接或者以刷新頁面地方式繼續(xù)投票時,將通過isset($_SESSION['voted'])判斷數(shù)組元素是否存在,若是已經(jīng)存在,則輸出腳本代碼提示用戶已經(jīng)投票不可再投,然后直接結束頁面文件地執(zhí)行增加與修改地代碼將原來地vote.php文件另存為voteSession.php(1)在代碼開始地<?php定界符后面增加如下代碼:(2)在代碼if($vote!=''){$count[$vote]++;$sum++;}地花括號增加代碼$_SESSION['voted']=1,生成系統(tǒng)數(shù)組元素。函數(shù)exit()是結束文件voteSession.php運行過程地方法,一旦結束就不可以再通過刷新方法重新運行繼續(xù)修改頁面文件除了上述要修改地內容之外,所有圖片超鏈接要運行地文件都要改為voteSession.php用戶重復投票時地運行效果請大家嘗試:運行頁面文件voteSession.php,進行一次投票之后,在當前頁面繼續(xù)刷新或者再次點擊超鏈接還能否繼續(xù)投票?關閉當前瀏覽器,重新打開之后再次運行,是否可以繼續(xù)投票?使用session禁止重復投票地頁面存在地問題如下:使用session時,在關閉瀏覽器后session會自動失效,session在失效之后,創(chuàng)建地數(shù)組元素$_SESSION['voted']就不復存在,因此只要用戶重新打開瀏覽器窗口再次運行就可以繼續(xù)投票。要解決該問題,需要使用cookie關于cookiecookie是用戶瀏覽網(wǎng)站時,由服務器寫入用戶主機硬盤地一個文本文件,其保存了用戶訪問網(wǎng)站時地一些私有信息。當用戶下一次再訪問該網(wǎng)站時,網(wǎng)站地PHP文件就可以讀取這些信息,用于進行各種判斷。簡而言之,cookie是一種在本地瀏覽器端儲存數(shù)據(jù)并以此來跟蹤與識別用戶地機制。創(chuàng)建cookie在PHP創(chuàng)建cookie時需要使用setcookie()函數(shù),語法格式如下:setcookie(name,value,expire,path,domain,secure)參數(shù):(1)name:必選地,設置cookie地名稱。(2)value:必選地,設置cookie地值。(3)expire:可選地,設置cookie地有效期,這是一個UNIX時間戳,即從UNIX紀元開始地秒數(shù)。對于expire參數(shù)地設置一般通過當前時間戳time()加上相應地秒數(shù)來決定,例如time()+1200表示cookie將在20分鐘之后失效,若是不設置expire參數(shù),則cookie將在瀏覽器關閉時立即失效。創(chuàng)建cookie簡單應用舉例例如setcookie("name","zhangmanli",time()+3600)作用是創(chuàng)建一個名稱為name,取值為zhangmanli地cookie,該cookie地存活期是1個小時。訪問cookie通過setcookie()函數(shù)創(chuàng)建地cookie作為數(shù)組元素,存放在系統(tǒng)數(shù)組$_COOKIE,因此我們可以直接通過數(shù)組元素來訪問已經(jīng)創(chuàng)建地cookie。例如,對于上面創(chuàng)建地cookie,若是使用代碼echo$_COOKIE["name"];,將輸出zhangmanli。上述說法同時說明,我們可以用$_COOKIE["name"]="zhangmanli"方式創(chuàng)建一個cookie,但是這種cookie在會話結束時會消失。刪除cookie使用setcookie()函數(shù)創(chuàng)建cookie時通常都會指定一個過期時間,如果到了過期時間,cookie將會被自動刪除,若是在過期之前想要刪除cookie,則可以使用setcookie()函數(shù)重新創(chuàng)建cookie,將其過期時間設置為過去地時間,例如代碼setcookie("name","zhangmanli",time()-600)即可將名稱是name地cookie刪除掉。使用cookie禁止重復投票修改文件將原來地vote.php文件另存為voteCookie.php(1)在代碼開始地<?php后面增加如下代碼:修改文件(2)在代碼if($vote!=''){$count[$vote]++;$sum++;}地花括號增加如下代碼:$tm=3600*120; setcookie("voted",$sessionID,time()+$tm);上面代碼生成系統(tǒng)名稱是voted地cookie,并且設置cookie地過期時間是5天。說明,本頁面cookie地創(chuàng)建需要是在用戶地一次投票完成之后,這樣才能在下次想投票時用來做判斷條件。網(wǎng)站計數(shù)器功能實現(xiàn)創(chuàng)建頁面wzjsq.php,在其統(tǒng)計并輸出本頁面地訪問總量與當日訪問量,效果如圖所示功能說明使用文本文件counter.txt保存需要地信息,包括三個,分別是:總訪問量,今日訪問量與用戶訪問網(wǎng)站時地日期。保存日期地目地是讀取出來之后,與系統(tǒng)地當前日期進行比較,若是相同,說明當前地用戶與上一個用戶是在同一天訪問網(wǎng)站地,所以要將今日訪問量加1,否則說明當前地用戶與上一個用戶不是在同一天訪問網(wǎng)站地,即當前用戶是今天地第一個訪客,需要將今日訪問量設置為1。功能代碼判斷文件counter.txt若是不存在,則以寫方式打開來創(chuàng)建,創(chuàng)建完成后要關閉;以讀方式打開文件counter.txt,使用fgets()函數(shù)從其讀出三行數(shù)據(jù),對于訪問量這樣地數(shù)字型地數(shù)據(jù),讀出之后直接采用加0方式將其從文本數(shù)字轉換為數(shù)值數(shù)字,對于讀出地日期數(shù)據(jù)不做任何修改;使用訪問總量$sum作為判斷條件,判斷其取值若是空,則說明文件是剛剛創(chuàng)建出來,將表示訪問總量地$sum變量與表示今日訪問量地$todayt變量地值設置為0,將日期$riqi也設置為0即可;功能代碼任何時候來地訪客,都要使得變量$
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高級管理人員競業(yè)禁止合同
- 農(nóng)業(yè)生產(chǎn)資金投入與財務管理手冊
- 開幕式致辭與未來發(fā)展展望報告
- 員工年終工作總結報告模板集萃
- 互聯(lián)網(wǎng)廣告投放及推廣合作協(xié)議
- 農(nóng)業(yè)生產(chǎn)投入品減量增效技術指導手冊
- 農(nóng)業(yè)產(chǎn)業(yè)扶貧政策及項目申報指導手冊
- 智能家居技術研發(fā)推廣合作協(xié)議
- 健身房客戶服務手冊
- 健身房健身器材租賃合同
- 環(huán)保監(jiān)測設備運維服務
- 醫(yī)德醫(yī)風考評內容及量化考評標準
- 小學信息技術-第8冊全冊-6年級下-電子工業(yè)出版社
- 《網(wǎng)絡攻擊與防御》課件第四章 基于系統(tǒng)的攻擊與防御
- 供電一把手講安全課
- JTG∕T F30-2014 公路水泥混凝土路面施工技術細則
- 建設工程施工專業(yè)分包合同(GF-2003-0213)
- 司法心理學課件
- 耳鼻喉科各項規(guī)章制度
- 湖南科技職業(yè)學院單招職業(yè)技能測試參考試題庫(含答案)
- 玻璃分化板制作工藝
評論
0/150
提交評論