PHP動態網站開發項目教程課件 任務9 在線投票系統投票功能實現_第1頁
PHP動態網站開發項目教程課件 任務9 在線投票系統投票功能實現_第2頁
PHP動態網站開發項目教程課件 任務9 在線投票系統投票功能實現_第3頁
PHP動態網站開發項目教程課件 任務9 在線投票系統投票功能實現_第4頁
PHP動態網站開發項目教程課件 任務9 在線投票系統投票功能實現_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PHP動態網站開發項目教程任務9在線投票系統投票功能實現子任務9.1游客投票功能實現9.1.1修改前端頁面文件

9.1.2制作后端投票文件

子任務9.2整合會員登錄系統9.2.1分析整合文件

小王同學根據前面的需求分析,整理了在線投票系統需要的會員管理系統功能,該系統的功能有:會員注冊、登錄(包括管理員登錄)、會員修改個人資料。管理員登錄后可進入后臺管理,但此處的后臺管理功能和會員管理系統中的后臺管理功能有很大不同。

通過分析需求,小王同學已經清楚了如何整合前面的會員管理系統。以下文件是需要從會員管理系統中移植過來的文件:checkAdmin.php(判斷管理員是否登錄)checkUsername.php(判斷用戶名是否可用)code.php(生成驗證碼)login.php(用戶登錄前端文件)logout.php(注銷登錄)modify.php(修改用戶資料)nav.php(導航欄)page.php(數據分頁文件)postLogin.php(用戶登錄后端文件)postModify.php(資料修改后端文件)postReg.php(用戶注冊后端文件)signup.php(用戶注冊前端文件)

另外,img下面的0.jpg和1.jpg也要復制過來。然后在index.

php中給右上角的“登錄”和“注冊”添加鏈接,就可以打開頁面測試效果了。9.2.2了解前端UI框架Layui

Layui是一個前端UI框架,其中包含一個layer彈層組件,這個組件有豐富的彈窗效果,正好可以用來展示注冊、登錄等頁面。

layer是一款近年來備受青睞的Web彈層組件,這得益于它全方位的解決方案,以及致力于服務各個水平段的開發人員,可令相關頁面輕松擁有豐富友好的操作體驗。

它盡可能地以更少的代碼展現更強健的功能,且格外注重性能的提升、易用和實用性,正因如此,越來越多的開發者都使用了layer。

layer兼容了包括IE6在內的所有主流瀏覽器,擁有數量可觀的接口,可以自定義各種風格,每一種彈層模式都極具特色,因此廣受歡迎。9.2.3使用Layui顯示注冊和登錄頁面

(1)在index.php中引入layer的核心JavaScript文件。(2)引入jQuery庫文件。(3)修改頭部的導航鏈接。(4)使用JavaScript完成open()方法的編寫。圖9.2.1

未引入jQuery庫文件而報錯

當小王同學在測試頁面效果時,發現在彈出層中還有會員管理系統的標題、導航鏈接等內容,現在這些內容已經不適合放在彈出層,因此,他修改了注冊和登錄頁面,使其不再包含nav.php文件。修改好以后,單擊“登錄”鏈接,效果如圖9.2.2所示,單擊“注冊”鏈接,效果如圖9.2.3所示。

圖9.2.2

使用layer彈窗顯示登錄頁面

圖9.2.3

使用layer彈窗顯示注冊頁面9.2.4優化彈窗跳轉邏輯,匹配新的數據表

(1)修改JavaScript中的代碼,添加一個關閉彈出層的方法。(2)打開postLogin.php文件,修改登錄后的頁面跳轉邏輯的相關內容。在這個文件中,首先要修改查詢的數據表表名,將info改為userInfo,然后需要修改在登錄成功或失敗時跳轉的相關內容。(3)檢查注冊功能。(4)修改數據,并保證數據表中記錄的完整性。(5)調整“資料修改”頁面中的相關內容。圖9.2.4

登錄成功后顯示當前登錄者的用戶名【知識儲備】

PHP中需要區分大小寫的相關內容總結如下。(1)變量名要區分大小寫。其中包括普通變量,比如$a和$A是兩個完全不同的變量。其中也包括全局變量,如$_GET,$_POST、$_REQUEST、$_COOKIE、$_SESSION、$GLOBALS、$_SERVER、$_FILES、$_ENV等。(2)常量名要區分大小寫。使用define定義的常量是要區分大小寫的。(3)數組索引(鍵名)要區分大小寫。比如,$arr['one']和$arr['One']是兩個不同的變量。(4)函數名、方法名、類名不區分大小寫。雖然這些內容不區分大小寫,但請堅持“大小寫敏感”原則,建議還是使用與定義時相同大小寫的名字。(5)魔術常量不區分大小寫。比如,LINE、FILE、DIR、FUNCTION、CLASS、METHOD、__NAMESPACE__等都不區分大小寫。(6)NULL、TRUE、FALSE不區分大小寫。(7)強制類型轉換不區分大小寫,比如,(int)、(integer),即轉換成整型;(bool)、(boolean),即轉換成布爾型;(float)、(double)、(real),即轉換成浮點型;(string),即轉換成字符串;(array),即轉換成數組;(object),即轉換成對象。子任務9.3登錄用戶實現投票9.3.1了解MySQL的事務機制

MySQL的事務機制主要用于處理操作量大、復雜度高的數據。比如,在人員管理系統中,當需要刪除一個人員時,既需要刪除人員的基本資料,又要刪除和該人員相關的信息,如信箱、文章等,這樣,這些數據庫操作語句就構成一個事務。1.支持事務機制的先決條件

在MySQL中,只有使用了InnoDB數據庫引擎的數據庫或數據表才支持事務機制。2.事務的作用

(1)事務可以用來維護數據庫的完整性,保證成批的SQL語句要么全部執行,要么全部不執行。(2)事務可以用來管理insert、update、delete語句的執行。3.事務需要滿足的4個條件(1)原子性。一個事務(Transaction)中的所有操作,要么全部執行,要么全部不執行,不會在中間某個環節結束。事務在執行過程中發生錯誤,會被回滾(RollBack)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。(2)一致性。在事務開始之前和事務結束以后,數據庫的完整性不會被破壞。這表示寫入的資料必須完全符合所有的預設規則,包含資料的精確度、串聯性,以及后續數據庫可以自發性地完成預定的工作需求。(3)隔離性。數據庫允許多個并發事務同時對其數據進行讀寫和修改,隔離性可以防止多個事務并發執行時,由于交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(ReadUncommitted)、讀提交(ReadCommitted)、可重復讀(RepeatableRead)和串行化(Serializable)。(4)持久性。事務處理結束后,對數據的修改是永久性的,即便系統故障,也不會丟失。4.MySQL事務處理的方法(1)用BEGIN、ROLLBACK、COMMIT來實現。BEGIN表示開始一個事務,ROLLBACK表示事務回滾,COMMIT表示事務確認。(2)直接用SET來改變MySQL的自動提交模式,其中“SETAUTOCOMMIT=0

”表示禁止自動提交,“SETAUTOCOMMIT=1”

表示開啟自動提交。9.3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論