2010-07-12 72 views
0

自從我看到有關此問題的任何問題以來,已經過了幾個月,但我想知道是否有人尚未找到解決方案/編寫幫助程序/模型來解決Code Igniter內部的這種困境,而不是偏離其內置會話。代碼點火器中的「記住我」功能

本質上,爲用戶提供了一個登錄表單,用戶將在其中輸入用戶名或電子郵件地址以及密碼。還會向用戶提供「記住我」複選框,以延長登錄時間。

CodeIgniter會話的問題是(A)關閉瀏覽器時它們不會過期;(B)不能以用戶到用戶的方式更改會話的長度,但只能在全局(在我的經驗中)。

我想用一個cookie模型/助手會有一種方法來爲這些會話添加一些額外的管理。但是,在開始繪製這個過程的麻煩之前,我想知道其他人是否已經在這方面做了一些工作,並且可以根據CodeIgniter提供一些代碼/邏輯。我之前編寫過基於Cookie/Session的登錄系統,但CodeIgniter在這方面提供了一個小小的困境。

任何幫助將appareciated!

回答

0

我很抱歉地說,但CodeIgniter的會話是瘋了。它不會將會話存儲在服務器上,它將它們存儲在cookie中。我的建議是使用本地PHP會話(不知道是否有插件)。然後這些被存儲在服務器端。您可以使用session_set_cookie_params函數(有條件地)有條件地延長cookie的使用期限。

雖然我的答案不是CodeIgniter特有的,但我希望它是有用的。

編輯:this page在用戶指南中提到如何將會話存儲在數據庫中。

+0

配置文件很容易允許您將會話存儲在數據庫(服務器端!)而不是cookie中。 但是,許多人仍然有你的擔憂,正如你所說的,有插件可以使用本地會話。 – Kurucu 2010-07-12 20:28:10

+0

夠公平的,它可以讓你把它改成db-store,我在答案中加了一個註釋。但我仍然不相信這比本地會議更好。你介意提供這種插件的鏈接嗎?我會讓這個社區維基。 – igorw 2010-07-12 21:20:12

+0

是啊......可能要寫一個會使用本地會話/ cookies的類。 – LinuxGnut 2010-07-13 14:54:00