簡體   English   中英

在Codeigniter 2中,如何使用本機會話?

[英]In Codeigniter 2, how do I use native sessions?

如何在CodeIgniter中使用本機會話?

目前,我在constants.php使用session_start 那是正確的方法嗎? 有什么陷阱,有沒有更好的方法?

我這樣做是因為我們有一個PHP應用程序,我們計划在CI中進行新的編碼。

另外,我正在尋找一個優秀的CI文檔,該文檔會教我一些CI基礎知識,最好是版本2。

謝謝

通常,使用session_start然后讀取/存儲到$_SESSION中即可。 歷史上我所做的就是將session_start調用放入控制器的構造函數方法中:我有一個基類,它繼承自CI_Controller並且處理語言本地化,會話初始化和其他愚蠢的事情,例如P3P標頭設置。 我所有其他控制器都繼承自該控制器,然后全部設置好。

有時使用本機會話非常有用:我遇到了一些使用本機會話的組件,而這些組件我根本不想處理補丁。 有(例如)使用本機會話的Redis會話保存處理程序:可以將其重寫為CI,但是...為什么不僅僅使用那里的內容。

加載會話庫

$this->load->library('session');

然后您可以使用

$this->session->set_userdata((array)$userdata);

session_start方法利用PHP的內置會話處理功能,這對於CI而言並不推薦。 引用官方文檔:

Session類不利用本地PHP會話。 它生成自己的會話數據,為開發人員提供了更大的靈活性。

看看http://codeigniter.com/user_guide/libraries/sessions.html-CodeIgniter有很好的文檔記錄。

我正在使用此處描述的本機會話庫。 基本上,這與CI會話庫的工作方式相同,但是使用PHP的本機會話,因此您可以使用docs中描述的功能。

要使用Codeigniter 2,請查看本文討論

嘗試讀取MY_Controller文件。 您可以按照擴展CI的設計方法,以一種不錯的方式從每個控制器中繼承所有內容。 將您的SESSION資料(以及其他任何跨站點資料)放在這里最有意義。

我在這里寫了一個簡單的CI入門文章: http : //www.12devsofxmas.co.uk/2011/12/codeigniter/

如果您要編寫的應用程序具有很多形式等,那么首先使用框架是一個很好的選擇。 我已經寫了很多東西來處理模板,自動生成表單等,但都沒有打包打包供公眾發布,但是對於我們正在構建的應用程序,它們都非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM