天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

解析php框架codeigniter中如何使用框架的session

里面有兩種session的使用方法:
1是php的原始的session使用方法,這個很簡單,$_SESSION['name']="name",然后在需要的地方顯示:echo $_SESSION['name'];
2是codeigniter這個框架的一個方法:
下面就詳細(xì)講解如何使用這個有點點復(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'     => '[email protected]',
                   'logged_in' => TRUE
               );
$this->session->set_userdata($newdata);
以下是轉(zhuǎn)載的別人的詳細(xì)的有點廢話的相關(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 是怎樣工作的?
需要知道的非常重要的一點就是,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'] 行來改變。

一個 session 是由一個包括下列信息的數(shù)組組成的:
唯一的用戶Session ID (這是一個平均信息量統(tǒng)計出來的非常堅固的隨機(jī)字符串,使用MD5加密,默認(rèn)是每五分鐘就重新生成一次。
用戶的 IP 地址
用戶瀏覽器信息(取前50個字符)
最新的一個活躍時間戳.
以上數(shù)據(jù)將會用以下數(shù)組格式序列化并存到cookie里:
復(fù)制代碼 代碼如下:
[array]
(
     'session_id'    => random hash,
     'ip_address'    => 'string - user IP address',
     'user_agent'    => 'string - user agent data',
     'last_activity' => timestamp
)

1、取得 Session 數(shù)據(jù):
可以通過如下的函數(shù)來得到 session 數(shù)組的任何信息:
$this->session->userdata('item');
item 是數(shù)組里的相對應(yīng)數(shù)據(jù)的索引。例如,想要獲得 session ID, 你要使用如下的代碼:
$session_id = $this->session->userdata('session_id');
注意: 如果你的目標(biāo)數(shù)據(jù)不存在的話,這個函數(shù)會返回 FALSE (布爾值boolean)。

2、添加自定義的 Session 數(shù)據(jù):
假設(shè),有個特定用戶登陸到你的網(wǎng)站, 當(dāng)他通過檢測后 你可以添加他的用戶名和電子郵件到 session cookie 中,這些信息可以在不去訪問數(shù)據(jù)庫的情況下,當(dāng)成全局量來使用。
通過以下函數(shù),你可以傳遞一個新的用戶數(shù)組到 session 數(shù)組中:
$this->session->set_userdata($array);
$array 是一個結(jié)合數(shù)組,用來存儲你的新數(shù)據(jù)。例如 :
復(fù)制代碼 代碼如下:
$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => '[email protected]',
                   'logged_in' => TRUE
               );
$this->session->set_userdata($newdata);

如果使用下面 set_userdata()函數(shù)的寫法,可以每次只添加一個用戶數(shù)據(jù)。
$this->session->set_userdata('some_name', 'some_value');
注意: Cookies 只能存儲 4KB 的數(shù)據(jù), 使用時要小心超出它的容量。特別指出的是,加密會產(chǎn)生比原數(shù)據(jù)更長的數(shù)據(jù)字符串,所以一定要當(dāng)心你要存放數(shù)據(jù)的大小。

3、刪除 Session 數(shù)據(jù):正如使用 set_userdata() 是用來添加信息到 session 中,而通過向unset_userdata() 函數(shù)中傳遞 session key 可以用來刪除這些信息。例如, 你想要從 session 信息里去掉 'some_name':
$this->session->unset_userdata('some_name');
也可以給這個函數(shù)傳一個要刪除項的關(guān)聯(lián)數(shù)組。
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);

4、將 Session 數(shù)據(jù)存入數(shù)據(jù)庫:
當(dāng)session 數(shù)據(jù)在數(shù)據(jù)庫中可用時,每當(dāng)從用戶cookie中發(fā)現(xiàn)一個有效的session,一個數(shù)據(jù)庫查詢就會被執(zhí)行以匹配它。如果 session ID 不相配,session 就會被銷毀。Session ID永遠(yuǎn)不會更新,它們只會在一個新的會話創(chuàng)建時生成。
為了存儲session,你必須先創(chuàng)建一個數(shù)據(jù)表。這是 session 類所需的基本結(jié)構(gòu)(用于MySQL的):
復(fù)制代碼 代碼如下:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text DEFAULT '' NOT NULL,
PRIMARY KEY (session_id) );

一旦啟用了,Session類就會在數(shù)據(jù)庫中存儲session數(shù)據(jù)。
同時確保你已經(jīng)在配置文件中指定了數(shù)據(jù)表名:$config['sess_table_name'] = 'ci_sessions';
注意: 默認(rèn)情況下這個表叫做 ci_sessions, 但是你可以給它指定任意名字,只要你更新了 application/config/config.php 文件以確保它包含了你所起的名字。一旦你創(chuàng)建了數(shù)據(jù)表,你就可以像下面這樣在config.php文件中啟用數(shù)據(jù)庫選項:
$config['sess_use_database'] = TRUE;
注意: Session類已經(jīng)內(nèi)置了清除過期session的垃圾回收機(jī)制,因此你不需要編寫你自己的事務(wù)來做這個。

5、銷毀 Session
要清除當(dāng)前 session:$this->session->sess_destroy();
Session 的參數(shù)

6、你可以在application/config/config.php 文件中找到以下的 Session 相關(guān)的參數(shù):
參數(shù)     默認(rèn)     選項     描述
sess_cookie_name     ci_session     無     你想要保存 Session Cookie 的名字。
sess_expiration     7200     無     session 持續(xù)的秒數(shù)。默認(rèn)是2個小時(7200秒)。如果將這個數(shù)值設(shè)為: 0,就可以得到 永久 session。
sess_expire_on_close     FALSE     TRUE/FALSE (boolean)     這個選項決定當(dāng)瀏覽器窗口關(guān)閉時是否自動使session過期。
sess_encrypt_cookie     FALSE     TRUE/FALSE (布爾值boolean)     是否對 session 數(shù)據(jù)加密.
sess_use_database     FALSE     TRUE/FALSE (布爾值boolean)     是否將 session 數(shù)據(jù)存放入數(shù)據(jù)庫中。在開啟這個選項前,你要先創(chuàng)建一個數(shù)據(jù)庫表。
sess_table_name     ci_sessions     任何有效的 SQL 表名     session 數(shù)據(jù)庫表的名字。
sess_time_to_update     300     時間以秒計算     這個選項控制 session 類多久會產(chǎn)生一個新的session 和 session id。
sess_match_ip     FALSE     TRUE/FALSE (布爾值boolean)     是否通過用戶的IP地址來讀取 session 的數(shù)據(jù)。 注意 ,有些網(wǎng)絡(luò)運(yùn)行商 ISPs 會動態(tài)的改變IP, 所以將這個選項設(shè)為 FALSE, 才有可能得到永久的 session。
sess_match_useragent     TRUE     TRUE/FALSE (布爾值boolean)     是否要按照對應(yīng)的 User Agent 來讀取 session 數(shù)據(jù)。

php技術(shù)解析php框架codeigniter中如何使用框架的session,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美性爱 先锋影音 | 在线观看永久免费网站 | 最近免费中文字幕完整版HD | 一区二区三区福利视频 | 野花日本免费完整版高清版动漫 | 亚洲精品久久99蜜芽尤物TV | 阿离被扒开双腿疯狂输出 | 久久精品亚洲 | 男人免费网站 | 国产福利一区二区精品 | 亚欧免费观看在线观看更新 | 97色伦图片97色伦图影院久久 | 色翁荡息又大又硬又粗又爽电影 | 国产91综合| 精品国产福利一区二区在线 | 欧美一区二区三区久久综 | 二级片免费看 | 暖暖日本免费播放 | 床伴在线观看免费高清完整泰剧第四集 | 国产精品视频成人 | 99爱在线精品视频免费观看9 | 亚洲精品自在在线观看 | 亚洲精品九色在线网站 | 欧美最新色p图 | 国产精选视频在线观看 | 国产九九九九九九九A片 | 色小姐.com| 伊久久 | 一二三四在线播放免费观看中文版视频 | 亚洲人成77777在线视频 | 国产成人综合在线视频 | 国产AV白丝爆浆在线播放 | yellow免费观看直播 | 三级黄色在线免费观看 | 公么我好爽再深一点 | 芳草地社区在线视频 | xxx在线播放| 好男人好资源在线观看免费视频 | 国产成人精品综合在线 | 日韩人妻精品久久日 | 91精选国产 |