1 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個贊
里面有兩種session的使用方法:
1是php的原始的session使用方法,這個很簡單,$_SESSION['name']="name",然后在需要的地方顯示:echo $_SESSION['name'];
2是codeigniter這個框架的一個方法:
下面就詳細(xì)講解如何使用這個有點(diǎn)點(diǎn)復(fù)雜的方法:
首先,在\ci\application\config下面的config.php文件中找到:$config['encryption_key'] = '';這個里面隨便填什么值都可以,但是不能為空。一般是英文啊,不要鉆牛角尖。
接著在\ci\application\config下面的auto.php文件中找到:$autoload['libraries'] = array('');里面要填寫:$autoload['libraries'] = array('session');或者在適當(dāng)?shù)牡胤饺鏲ontrol文件夾里面的相應(yīng)文件中(一般是在構(gòu)造方法中)寫:$this->load->library('session');這樣也行。
現(xiàn)在環(huán)境配置好了,現(xiàn)在就是寫代碼了:
在需要放入session的地方寫:
$this->session->set_userdata('name','yang');
這樣session里面就有了值了。
顯示值:
echo $this->session->userdata('name');
如果是array,則:
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
以下是轉(zhuǎn)載的別人的詳細(xì)的有點(diǎn)廢話的相關(guān)知識:
Sessions會在每個頁面載入后開始運(yùn)行,所以session類必須首先被初始化。
1、您可以在控制器中初始化,也可以在系統(tǒng)中自動加載(譯者注:在autoload.php設(shè)定)$autoload['libraries'] = array('session');
2、要在您的控制器構(gòu)造函數(shù)中初始化session類,您可以使用 $this->load->library 函數(shù):$this->load->library('session');一旦被載入, session就可以這樣使用: $this->session。
session類的絕大部分都會在后臺運(yùn)行,所以初始化session時,它session數(shù)據(jù)會被自動讀取、創(chuàng)建和更新。
Sessions 是怎樣工作的?
需要知道的非常重要的一點(diǎn)就是,session類一旦被初始化,它就會自動運(yùn)行。對于后面的事情,您可以完全不作理會。正如您將會在下面看到的一樣,您可以正常使用session來工作,甚至還可以添加自己的session數(shù)據(jù),而在這一切的過程中,讀、寫和更新的操作都是自動完成的。
當(dāng)頁面載入后,session類就會檢查用戶的cookie中是否存在有效的session數(shù)據(jù)。如果session數(shù)據(jù)不存在(或者已經(jīng)過期),那么就會創(chuàng)建一個新的session并把他保存在cookie中。如果session數(shù)據(jù)存在,那么他的信息就會被更新,同時cookie也會被同時更新。每次更新都會重新生成session_id的值。
默認(rèn)情況下, Session Cookie 每隔 5 分鐘才會更新一次,這樣會減少對處理器的負(fù)荷。如果你重復(fù)的裝載頁面, 你會發(fā)現(xiàn)"上次活動"的時間在五分鐘,或多余五分鐘的時候才會變化,也就是 cookie上次被寫入的時間。 這個時間可以通過設(shè)置 application/config/config.php 文件里的 $config['sess_time_to_update'] 行來改變。
- 1 回答
- 0 關(guān)注
- 450 瀏覽
添加回答
舉報