[英]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有很好的文檔記錄。
嘗試讀取MY_Controller文件。 您可以按照擴展CI的設計方法,以一種不錯的方式從每個控制器中繼承所有內容。 將您的SESSION資料(以及其他任何跨站點資料)放在這里最有意義。
我在這里寫了一個簡單的CI入門文章: http : //www.12devsofxmas.co.uk/2011/12/codeigniter/
如果您要編寫的應用程序具有很多形式等,那么首先使用框架是一個很好的選擇。 我已經寫了很多東西來處理模板,自動生成表單等,但都沒有打包打包供公眾發布,但是對於我們正在構建的應用程序,它們都非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.