萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中session學習筆記

php中session學習筆記

Session指的就是用戶在浏覽某個網站時,從進入網站到浏覽器關閉所經過的這段時間,也就是用戶浏覽這個網站所花費的時間。從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。

使用PHP應用session時,將session中的數據存儲在服務器上,然後通過客戶端傳來的sessionID識別客戶端的信息,並提取信息。

自己的一個實例

 代碼如下 復制代碼

<?php
session_start();//啟動會話session,在session必須啟動
$_SESSION['name']=”fangshan”;//設置session,name的值為fangshan
?>
<a href=”session2.php”>next</a>

(以上另存為session.php)

<?php
session_start();//啟動會話
if(isset($_SESSION['name']))//判斷是否存在
{
 echo $_SESSION['name'];
 echo “<a href=”deletesession.php”>del session</a>”;
}
else
{
 echo “Session has not been setted”;
}
?>

(以上另存為session2.php)

<?php
session_start();//啟動session
unset($_SESSION['name']);//注銷session變量
session_destroy();//清除session ID
header(“Location:session2.php”);//跳轉回前面頁面
?>

(以上另存為deletesession.php)


session的常用操作:

session的寫入、讀取、注冊與刪除。

session的開始

標記session使用開始的函數是session_start,session_start函數用於初始化session變量。語法如下:

session_start();

返回值為TRUE。

session的寫入和讀取

在PHP中,session的使用是通過預定義數組$_SESSION的調用和讀取來完成。

在網站的頁面中,在注冊頁面對$_SESSION數組進行賦值,在其他的頁面中對$_SESSION數組進行讀取。

注冊頁面中的session,例如:

 代碼如下 復制代碼 <?php
session_start();
$_SESSION['keyword']= "php";
?>

其他頁面中的session,例如:

 代碼如下 復制代碼 <?php
session_start();
echo $_SESSION['keyword'];
?>

依次運行,結果是:

php

session的檢測與注銷

還記得isset和unset函數嗎?這兩個函數分別實現session的檢測與注銷。

isst函數用於檢測session是否已經被存在,語法如下:

bool isset($_SESSION['session_name'])

例如:

 代碼如下 復制代碼

<?php
session_start();
if(isset($_SESSION['keyword']))
 echo $_SESSION['keyword'];
 else
  echo "www.111cn.net";
?>

結果:

php

usset函數用於注銷已經建立的session變量。語法如下:

unset($_SESSION['session_name']))

例如:

 代碼如下 復制代碼

<?php
session_start();
unset($_SESSION['keyword']);
if(isset($_SESSION['keyword']))
  echo $_SESSION['keyword'];
  else
   echo "www.111cn.net";
?>

結果:

www.111cn.net


Php處理會話的函數一共有10個,我們詳細介紹一下將要用到幾個函數。

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
8、 session_name


函數功能:存取當前會話名稱
函數原型:boolean session_name(string [name]);
返回值:字符串
功能說明:這個函數可取得或重新設置當前session的名稱。若無參數name則表示獲取當前session名稱,加上參數則表示將session名稱設為參數name
9、 session_id


函數功能:存取當前會話標識號
函數原型:boolean session_id(string [id]);
返回值:字符串
功能說明:這個函數可取得或重新設置當前存放session的標識號。若無參數id則表示只獲取當前session的標識號,加上參數則表示將session的標識號設成新指定的id
10、 session_unset


函數功能:刪除所有已注冊的變量。
函數原型:void session_unset (void)
返回值:布爾值
功能說明:這個函數和Session_destroy不同,它不結束會話。就如同用函數session_unregister逐一注銷掉所有的會話變量。

copyright © 萬盛學電腦網 all rights reserved