PHP會話技術

2021-09-02 02:35:24 字數 2000 閱讀 5312

我們在瀏覽**的時候,訪問每乙個web頁面都是使用http協議來實現的。由於http協議是乙個無狀態的協議。這就會導致當乙個使用者請求乙個頁面以後,再請求該**的其他頁面,http協議並不能告訴伺服器這是同乙個使用者。

因為http協議是無狀態的,所以我們無法跟蹤使用者。所以一定程度上會影響我們的開發,例如:登入模組,如果不能跟蹤使用者,將會導致訪問該**的每乙個都要求我們重新登入。還有就是購物車也是需要使用到使用者跟蹤。

1.cookie方式

為了對使用者進行跟蹤,就必須對使用者進行標記,cookie的思想就是,當使用者訪問**的第乙個頁面時,通過設定使用者的資訊標識,web伺服器將其以文字檔案的形式存放到使用者的電腦上面,這些檔案就是所謂的cookie,以鍵值對的方式儲存,當使用者再訪問第二個該**的頁面時,將通過http頭資訊,將攜帶cookie檔案中的資訊一起訪問伺服器,並重新對剛才的使用者資訊進行驗證,這樣避免了每次訪問都輸入使用者資訊,可以確定多個頁面之間的訪問是不是同一使用者了。

2.session方式

session與cookie相似,只是原來將資訊存在使用者端的,現在改為存到服務端,但在使用者端產生乙個標識id,這個id預設是儲存到使用者本地的cookie中,所以session又和cookie扯上了關係。這樣使用者第一次訪問時將資訊存到web伺服器,並隨機分配給使用者乙個固定長度的字串(session id),以後使用者再訪問其他頁面,就帶著這個id去服務端裡找對應使用者資料資訊,於是就可以跟蹤使用者了,使用cookie的session稱為基於cookie的session。

1)開始乙個會話

呼叫session_start()函式即可,函式的具體功能可以查閱php的文件。需要注意的是,必須在使用會話的指令碼開始部分呼叫這個函式,如果沒有,所有儲存在該會話中的資訊都無法在指令碼中使用。除了手動呼叫session_start()函式外,也可以自動配置php自動呼叫,可以google之。

2)註冊乙個會話變數

從php4.1以後,會話變數儲存在超級全域性陣列$_session中。要建立一會話變數,只需要在陣列中設定乙個元素,如$_session['myvar'] = 5;

3) 使用乙個會話變數

要使用乙個會話變數很簡單,使用$_session陣列訪問儲存的會話變數即可,如 echo $_session['mywar']; 會列印出 5。使用會話前必須首先使用session_start()函式啟動乙個會話。

4)登出變數和銷毀會話

登出變數直接使用unset即可,如unset($_session['myvar']),如何要一次銷毀所有會話變數,可以使用 unset($_session); 當使用完乙個會話後,首先應該登出所有的變數,然後再呼叫session_destroy() 來清除會話id。

<?php

啟動乙個會話並註冊乙個變數

session_start();

$_session['sess_var'] = "hello, world!";

echo 'the content of $_session[\'sess_var\'] is ' . $_session['sess_var'] . '

';?>

next page

<?php

訪問乙個會話並登出它

session_start();

$_session['sess_var'] = "hello, world!";

echo 'the content of $_session[\'sess_var\'] is ' . $_session['sess_var'] . '

';unset($_session['sess_var']);

?>

next page

<?php

結束會話

session_start();

echo 'the content of $_session[\'sess_var\'] is ' . $_session['sess_var'] . '

';session_destroy();

?>

php 會話技術 cookie

我們訪問 走的是http協議,協議具有無連線無狀態的特性,對事物的處理不具有記憶能力,即每次請求不會記錄使用者的訪問行為。我們在web專案中,很多時候需要將會話資料持久化記憶儲存,以便後續的程式能夠隨時呼叫和使用,比如使用者的登入等。瀏覽器多次請求同一臺伺服器時,將資料持久化儲存的一種技術,就是會話...

會話及其會話技術(三)

瀏覽器與伺服器建立一次請求與對話的過程。sesssionid 類似於診療卡 session基於cookie來實現的 sessionid產生過程 瀏覽器訪問web伺服器,servlet容器會建立乙個session物件和id屬性 session物件 病歷檔案 id 醫療卡 客戶端後續訪問伺服器,只傳遞標...

會話cookies技術

cookies是一種能夠讓 伺服器把少量資料儲存到客戶端的硬碟或記憶體,或是從客戶端的硬碟讀取資料的一種技術。cookies是當你瀏覽某 時,由web伺服器置於你硬碟上的乙個非常小的文字檔案,它可以記錄你的使用者id 密碼 瀏覽過的網頁 停留的時間等資訊。當你再次來到該 時,通過讀取cookies,...