php會話即session是指用戶從進(jìn)入網(wǎng)站到關(guān)閉網(wǎng)站這段時間內(nèi)活動的一種機(jī)制,它提供了所有網(wǎng)頁都共同使用的公共變量存貯機(jī)制。那么session到底有什么用處呢?網(wǎng)上購物時大家都用過購物車,你可以隨時把你選購的商品加入到購物車中,最后再去收銀臺結(jié)帳。在整個過程中購物車一直扮演著臨時存貯被選商品的角色,用它追蹤用戶在網(wǎng)站上的活動情況,這就是session的作用。
session的發(fā)明填補(bǔ)了http協(xié)議的局限,http協(xié)議被認(rèn)為是無狀態(tài)協(xié)議,當(dāng)它在服務(wù)端完成響應(yīng)之后,服務(wù)器就失去了與該瀏覽器的聯(lián)系。會話的發(fā)明使得一個用戶在多個頁面間切換時能夠保存他的信息。
在php3版本未直接提供session功能,我們只能用其它辦法來實(shí)現(xiàn),比如用phplib。如果說php4與php3相比,它最大的進(jìn)步就是提供了session。
session基礎(chǔ)知識
要使用session需要php4.1以上的版本,而且需要把php.ini中的register_globle=off設(shè)成register_globle=on。另外,session.cookie_path = / 這行不易更改。
注明:這篇文章很明顯有點(diǎn)老了,不過,下面說的還很不錯,在register_globle=off的時候,也一樣可以用,而且,下面的session_register也可以不用了,直接用$_session[xxx]="xxxxxxx";$http_session_vars這個變量也不用了。
php中的session默認(rèn)情況下是使用客戶端的cookie。當(dāng)客戶端的cookie被禁用時,會自動通過query_string來傳遞。
php處理會話的函數(shù)一共有11個,我們詳細(xì)介紹一下將要用到幾個函數(shù)。
1、 session_start
函數(shù)功能:開始一個會話或者返回已經(jīng)存在的會話。
函數(shù)原型:boolean session_start(void);
返回值:布爾值
功能說明:這個函數(shù)沒有參數(shù),且返回值均為true。最好將這個函數(shù)置于最先,而且在它之前不能有任何輸出,否則會報警,如:
warning: cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/cga/member/1.php:2) in /usr/local/apache/htdocs/cga/member/1.php on line 3
2、 session_register
函數(shù)功能:登記一個新的變量為會話變量
函數(shù)原型:boolean session_register(string name);
返回值:布爾值。
功能說明:這個函數(shù)是在全局變量中增加一個變量到當(dāng)前的session中,參數(shù)name就是想要加入的變量名,成功則返回邏輯值true。可以用$_session[name]或$http_session_vars[name]的形式來取值或賦值。
3、 session_is_registered
函數(shù)功能:檢查變量是否被登記為會話變量。
函數(shù)原型:boobean session_is_registered(string name);
返回值:布爾值
功能說明:這個函數(shù)可檢查當(dāng)前的session之中是否已有指定的變量注冊,參數(shù)name就是要檢查的變量名。成功則返回邏輯值true。
4、 session_unregister
函數(shù)功能:刪除已注冊的變量。
函數(shù)原型:boolean session_session_unregister(string name);
返回值:布爾值
功能說明:這個函數(shù)在當(dāng)前的session之中刪除全局變量中的變量。參數(shù)name就是欲刪除的變量名,成功則返回true.
5、 session_destroy
函數(shù)功能:結(jié)束當(dāng)前的會話,并清空會話中的所有資源。
函數(shù)原型:boolean session destroy(void);
返回值:布爾值。
功能說明:這個函數(shù)結(jié)束當(dāng)前的session,此函數(shù)沒有參數(shù),且返回值均為true
上面介紹函數(shù)下文將會用到,但還有一些有關(guān)session的函數(shù)也介紹一下:
6、 session_encode
函數(shù)功能:sesssion信息編碼
函數(shù)原型:string session_encode(void);
返回值:字符串
功能說明:返回的字符串中包含全局變量中各變量的名稱與值,形式如:a|s:12:"it is a test";c|s:4:"lala"; a是變量名 s:12代表變量a的值"it is a test的長度是12 變量間用分號”;”分隔。
7、 session_decode
函數(shù)功能:sesssion信息解碼
函數(shù)原型:boolean session_decode (string data)
返回值:布爾值
功能說明:這個函數(shù)可將session信息解碼,成功則返回邏輯值true
新聞熱點(diǎn)
疑難解答