PHP會話即SESSION是指用戶從進入網站到關閉網站這段時間內活動的一種機制,它提供了所有網頁都共同使用的公共變量存貯機制。那么SESSION到底有什么用處呢?網上購物時大家都用過購物車,你可以隨時把你選購的商品加入到購物車中,最后再去收銀臺結帳。在整個過程中購物車一直扮演著臨時存貯被選商品的角色,用它追蹤用戶在網站上的活動情況,這就是SESSION的作用。
SESSION的發明填補了HTTP協議的局限,HTTP協議被認為是無狀態協議,當它在服務端完成響應之后,服務器就失去了與該瀏覽器的聯系。會話的發明使得一個用戶在多個頁面間切換時能夠保存他的信息。
在PHP3版本未直接提供session功能,我們只能用其它辦法來實現,比如用PHPLIB。如果說PHP4與PHP3相比,它最大的進步就是提供了SESSION。
Session基礎知識
要使用session需要PHP4.1以上的版本,而且需要把php.ini中的register_globle=Off設成register_globle=On。另外,session.cookie_path = / 這行不易更改。
注明:這篇文章很明顯有點老了,不過,下面說的還很不錯,在register_globle=Off的時候,也一樣可以用,而且,下面的session_register也可以不用了,直接用$_SESSION[xxx]="xxxxxxx";$HTTP_SESSION_VARS這個變量也不用了。
PHP中的session默認情況下是使用客戶端的Cookie。當客戶端的Cookie被禁用時,會自動通過Query_String來傳遞。
Php處理會話的函數一共有11個,我們詳細介紹一下將要用到幾個函數。
1、 session_start
函數功能:開始一個會話或者返回已經存在的會話。
函數原型:boolean session_start(void);
返回值:布爾值
功能說明:這個函數沒有參數,且返回值均為true。最好將這個函數置于最先,而且在它之前不能有任何輸出,否則會報警,如:
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
函數功能:登記一個新的變量為會話變量
函數原型:boolean session_register(string name);
返回值:布爾值。
功能說明:這個函數是在全局變量中增加一個變量到當前的SESSION中,參數name就是想要加入的變量名,成功則返回邏輯值true。可以用$_SESSION[name]或$HTTP_SESSION_VARS[name]的形式來取值或賦值。
3、 session_is_registered
函數功能:檢查變量是否被登記為會話變量。
函數原型:boobean session_is_registered(string name);
返回值:布爾值
功能說明:這個函數可檢查當前的session之中是否已有指定的變量注冊,參數name就是要檢查的變量名。成功則返回邏輯值true。
4、 session_unregister
函數功能:刪除已注冊的變量。
函數原型:boolean session_session_unregister(string name);
返回值:布爾值
功能說明:這個函數在當前的session之中刪除全局變量中的變量。參數name就是欲刪除的變量名,成功則返回true.
5、 Session_destroy
函數功能:結束當前的會話,并清空會話中的所有資源。
函數原型:boolean session destroy(void);
返回值:布爾值。
功能說明:這個函數結束當前的session,此函數沒有參數,且返回值均為true
上面介紹函數下文將會用到,但還有一些有關session的函數也介紹一下:
6、 session_encode
函數功能:sesssion信息編碼
函數原型: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
函數功能:sesssion信息解碼
函數原型:boolean session_decode (string data)
返回值:布爾值
功能說明:這個函數可將session信息解碼,成功則返回邏輯值true
新聞熱點
疑難解答