我正在創建一個包含不同級別測驗的網站,其中我想在他/她註銷時存儲用戶進度..他應該能夠從他註銷的級別繼續。我怎樣才能使用數據庫來存儲用戶的當前級別,同時註銷和檢索登錄級別?在php會話中存儲用戶進度
請建議一些在線幫助或教程來完成此操作。謝謝
我正在創建一個包含不同級別測驗的網站,其中我想在他/她註銷時存儲用戶進度..他應該能夠從他註銷的級別繼續。我怎樣才能使用數據庫來存儲用戶的當前級別,同時註銷和檢索登錄級別?在php會話中存儲用戶進度
請建議一些在線幫助或教程來完成此操作。謝謝
是的,他們很好,但一定要只存儲一些關卡代碼,而不是數字。
Cookies是餿主意(如果他/她是做在學校/工作測試,並得到家庭,餅乾不再是實際的)。
會話ID存儲在cookie(大部分時間)和會話變量應該是唯一的每個連接,所以再次不是一個好的選擇。
當然,Cookie和會話ID可以手動擦除(以隱藏嘗試結果不佳或清除班級隊友進度)。
所以只有可行的選擇是使用數據庫......有很多關於此的教程,請在評論中提問任何問題,我將編輯答案。
這是關於外鍵的article,one in mysql documentation似乎有點難以閱讀,但你應該學會如何閱讀這些。
Here're tutorials關於創建民意調查和投票系統,尤其是this one seem好(姓名,沒有讀過它)。
如果您需要一個持續的測驗結果歷史記錄,您需要一個數據庫。 Cookie可以存儲特定測驗的進度,但不是存儲用戶歷史記錄的可靠方法。此外,使用Cookie,用戶將無法在一臺設備上開始測驗,然後繼續在另一臺設備上進行測驗。對於多設備進度跟蹤,數據庫會話將更加優秀。
可以幫助我良好的數據庫會話教程,我可以參考? – prit2192 2012-02-08 17:48:45
以下是使用數據庫存儲會話的好鏈接:http://shiflett.org/articles/storing-sessions-in-a-database – davidethell 2012-02-08 19:53:21
但是,這本身並不能解決您的問題。您需要了解如何使用數據庫來存儲用戶信息。從這裏開始:http://www.w3schools.com/php/php_mysql_intro.asp – davidethell 2012-02-08 19:59:27
在(單個)會話期間存儲數據時Cookie很有用,但據我所知,您希望能夠在新會話中恢復舊會話的先前進度。因此,您需要將進度存儲在其他地方,例如在數據庫中。
如果僅在用戶明確註銷時保存會話數據,則可以在調用logout() - 方法時存儲會話數據,然後將其加載到login()上。但是這意味着,例如當會話超時時,來自當前會話的數據可能會丟失(!),因此可能不合需要。
另一種解決方案可能是在保存數據存儲在更永久存儲器(例如上述數據庫)的測驗中具有「保存點」,某些里程碑。
我不同意你的答案。請閱讀我的答案,並告訴我你的反駁論點。 (我不是故意冒犯,我只是認爲你忘了考慮這些具體情況) – Vyktor 2012-02-08 17:30:31
你說得對,但我認爲,在不需要支持更多計算機的情況下(而且大多數情況下不是)也是不好的結果,我的工作很好。但是,如果它不僅僅是一個「嘗試直到完成」類型的測驗,就像猜測答案一樣,但是從四個/等等中選擇一個,你是對的。 – axiomer 2012-02-08 17:31:29
不幸的是,依賴於該用戶不會欺騙(甚至刪除它們可能被認爲是欺騙)它們。他會的。 :) 我會。 – Vyktor 2012-02-08 17:38:38