使用SESSION實現PHP會話的步驟

在PHP中能夠使用SESSION來實現一個會話控制,那麼具體要怎樣去實現?通常來講,一個會話有以下幾個基本的步驟:

1.開啓一個會話 php

2.註冊會話變量 數組

3.使用會話變量 session

4.註銷變量並銷燬會話 函數

固然,這些步驟也不必定都要發生在同一個PHP腳本中,其中的一些步驟能夠在多個PHP腳本中發生。下面,就依次具體的談談這些步驟。 網站

1、開啓一個會話 對象

在使用會話功能前,必須開啓一個會話。PHP提供了兩種方法來開啓一個會話。 io

第一種方法,就是調用PHP內置函數sesseion_start()來開始一段腳本,這也是最簡單的一種方法。 變量

該函數將檢查是否存在一個會話ID。若是已經存在會話ID,就將這個已經註冊的會話變量載入以便後面使用。若是不存在,就建立一個會話ID,而且使用其可以經過超級全局變量數組$_SESSION進行訪問。在要使用到會話的腳本開始部分必須調用session_start()函數。若是沒有調用,全部保存在該會話的信息都沒法在當前腳本中使用。 gc

第二種方法是將PHP設置成當有用戶訪問網站的時候就自動開啓一個會話。在php.ini文件中的session.auto_start選項完成該設置。不過這種方法有一個很大的缺點:啓用auto_start設置致使沒法使用對象做爲會話變量。這是由於該對象的類定義必須在建立該對象的會話開始以前載入。 方法

2、註冊一個會話變量

從PHP4.1版本以後,咱們能夠將會話變量保存在超級全局數組$_SESSION中。要建立一個會話變量,只需在這些數組中設置一個數組元素,以下實例:

$_SESSION['myage'] = 18;

注意,使用超級全局數組$_SESSION建立會話變量只有在會話結束或者手動重置它時纔會失效。根據php.ini文件對會話gc_maxlifttime指令設置,該會話也可能會過時。該指令肯定會話的持續時間(單位爲秒),超過設置時間,該會話將被自動結束。

3、使用會話變量

上面步驟中有提到過,要在當前腳本中使用已保存的會話變量,必須首先使用session_start()函數啓動一個會話。使用該函數以後,就能夠經過超級全局數組$_SESSION訪問保存的會話變量了,例如,

$_SESSION['myage']。

當使用對象做爲會話變量時,在調用session_start()函數從新載入會話變量以前,必須包含該類對象的定義。這樣,PHP就知道如何構建這個會話對象。

相反,在檢查會話變量是否已經被設置時,必須很是當心。需注意,變量能夠被用戶經過GET或POST設置。能夠經過檢查$_SESSION數組來肯定一個變量是不是註冊的會話變量。能夠經過以下所示的代碼來檢查:

if(isset($_SESSION['myage']))...

4、註銷變量與銷燬會話

要結束一個會話,首先要註銷會話變量,而後銷燬會話。當使用完一個會話變量後,就能夠將其註銷。經過$_SESSION數組的適當元素,能夠直接註銷會話變量,實例以下:

unset($_SESSION['myage']);

咱們不能直接銷燬整個$_SESSION數組,由於這樣將禁用會話功能。要一次銷燬全部的會話變量,能夠使用以下所示的語句:

$_SESSION = array();

當使用完一個會話以後,首先應用註銷全部變量,而後再調用:session_destroy()來清除會話ID。

至此,使用SESSION實現簡單會話的步驟所有結束。
相關文章
相關標籤/搜索