php中session學習筆記

來源:互聯網
上載者:User

使用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逐一登出掉所有的會話變數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.