2012-02-08 55 views
1

我正在創建一個包含不同級別測驗的網站,其中我想在他/她註銷時存儲用戶進度..他應該能夠從他註銷的級別繼續。我怎樣才能使用數據庫來存儲用戶的當前級別,同時註銷和檢索登錄級別?在php會話中存儲用戶進度

請建議一些在線幫助或教程來完成此操作。謝謝

回答

0

是的,他們很好,但一定要只存儲一些關卡代碼,而不是數字。

一些教程:tizag.comw3schoolsPHP.net documentation

+0

我不同意你的答案。請閱讀我的答案,並告訴我你的反駁論點。 (我不是故意冒犯,我只是認爲你忘了考慮這些具體情況) – Vyktor 2012-02-08 17:30:31

+0

你說得對,但我認爲,在不需要支持更多計算機的情況下(而且大多數情況下不是)也是不好的結果,我的工作很好。但是,如果它不僅僅是一個「嘗試直到完成」類型的測驗,就像猜測答案一樣,但是從四個/等等中選擇一個,你是對的。 – axiomer 2012-02-08 17:31:29

+0

不幸的是,依賴於該用戶不會欺騙(甚至刪除它們可能被認爲是欺騙)它們。他會的。 :) 我會。 – Vyktor 2012-02-08 17:38:38

2

Cookies是餿主意(如果他/她是做在學校/工作測試,並得到家庭,餅乾不再是實際的)。

會話ID存儲在cookie(大部分時間)和會話變量應該是唯一的每個連接,所以再次不是一個好的選擇。

當然,Cookie和會話ID可以手動擦除(以隱藏嘗試結果不佳或清除班級隊友進度)。

所以只有可行的選擇是使用數據庫......有很多關於此的教程,請在評論中提問任何問題,我將編輯答案。

這是關於外鍵的articleone in mysql documentation似乎有點難以閱讀,但你應該學會如何閱讀這些。

Here're tutorials關於創建民意調查和投票系統,尤其是this one seem好(姓名,沒有讀過它)。

+0

由於該網站將需要多個用戶從多臺計算機登錄,因此在數據庫中存儲進度比Cookie更可行。您是否可以建議任何在線教程將會話存儲在數據庫中?感謝您的幫助 – prit2192 2012-02-08 17:47:23

+0

@ prit2192您不必將會話存儲到數據庫中,您必須在其中存儲帶有用戶標識的部分結果。也許某些表格設計的正確使用外鍵和輪詢示例會有所幫助。把你的時間,瀏覽槽提供的鏈接,並提出更多的問題:) – Vyktor 2012-02-08 18:16:00

0

如果您需要一個持續的測驗結果歷史記錄,您需要一個數據庫。 Cookie可以存儲特定測驗的進度,但不是存儲用戶歷史記錄的可靠方法。此外,使用Cookie,用戶將無法在一臺設備上開始測驗,然後繼續在另一臺設備上進行測驗。對於多設備進度跟蹤,數據庫會話將更加優秀。

+0

可以幫助我良好的數據庫會話教程,我可以參考? – prit2192 2012-02-08 17:48:45

+0

以下是使用數據庫存儲會話的好鏈接:http://shiflett.org/articles/storing-sessions-in-a-database – davidethell 2012-02-08 19:53:21

+0

但是,這本身並不能解決您的問題。您需要了解如何使用數據庫來存儲用戶信息。從這裏開始:http://www.w3schools.com/php/php_mysql_intro.asp – davidethell 2012-02-08 19:59:27

0

在(單個)會話期間存儲數據時Cookie很有用,但據我所知,您希望能夠在新會話中恢復舊會話的先前進度。因此,您需要將進度存儲在其他地方,例如在數據庫中。

如果僅在用戶明確註銷時保存會話數據,則可以在調用logout() - 方法時存儲會話數據,然後將其加載到login()上。但是這意味着,例如當會話超時時,來自當前會話的數據可能會丟失(!),因此可能不合需要。

另一種解決方案可能是在保存數據存儲在更永久存儲器(例如上述數據庫)的測驗中具有「保存點」,某些里程碑。