註冊Session會話
#在php中使用Session 變數,除了必須要啟動,還要經過一個註冊的過程,註冊並讀取Session 變量,都要透過存取 $_SESSION 數組完成。 從PHP 4.1.0版本起,$_SESSION 如同 $_POST、$_GET和 $_COOKIE等一樣成為超級全域數組,但必須在呼叫 session_start() 函數開啟 Session 之後才能使用。 與 $HTTP_SESSION_VARS 不同,$_SESSION總是具有全域的範圍,因此不要對 $_SESSION 使用 global 關鍵字。 在 $_SESSION 關聯數組中的鍵名具有和 PHP中 普通變數名稱相同的命名規則。
會話變數建立後,全部都保存在陣列 $_SESSION 中。透過陣列 $_SESSION建立一個會話變數很容易,只要直接為該陣列新增一個元素就好了。
例如如下的範例會啟動會話,建立一個 Session 變數並賦予一個空值,程式碼是如下的:
<?php session_start(); // 启动 Session $_SESSION['name'] = null; // 声明一个名为 admin 的变量,并设置为空值 null。 ?>
執行腳本以後, Session 變數就會被保存在伺服器端的某一個資料夾中。改文件的位置是透過 php.ini 文件,在 session.save_path 屬性指定的目錄下,為這個訪問使用者單獨建立一個文件,用來保存已經註冊的 Session 變數。打個比方, 某個保存Session 變數的文件名為類似「 sess_09403850rf7sk39s67 」 的形式,文件名中包含了 Session ID,所以每個訪問用戶在伺服器中都有自己的保存Session 變量文件,而且這個文件可以直接使用文字編輯器來開啟。此文件的內容結構如下所示:
變數名稱| 類型: 長度:值 #//每個變數都適用相同的結構來保存
如上所述來舉一個簡單的例子:
<?php //启动 session session_start(); //注册 session 变量,赋值为一个用户名称 $_SESSION['usermane'] = "sky"; //注册 session 变量,赋值为一个用户id $_SESSION['uid'] = 1; ?>
上面的實例中Session 註冊了兩個變量,如果在伺服器中找到為該用戶保存 Session 變量的文件,開啟後可看到以下的內容:
username | s:6: "sky"; uid | i:1:"1"; // 儲存使用者的中點兩個變數的內容
讀取Session會話
首先需要判斷會話變數是否有一個會話ID存在,如果不存在,就創建一個,並且使其能夠透過全域數組$_SESSION 進行存取;如果已經存在,則將這個已經建立的會話變數載入以提供給使用者使用。
例如:判斷儲存使用者名稱的 Session 會話變數是否為空,如果不為空,則將該會話變數賦予 $my_value,其程式碼顯示如下:
<?php if(!empty($_SESSION['session_name'])){ //判断存储用户名的 Session 会话变量是否为空 $my_value = $_SESSION['session_name']; //将会话变量赋予一个变量 $my_value } ?>
以上是php中如何註冊和讀取Session會話的詳細內容。更多資訊請關注PHP中文網其他相關文章!