SESSION 跨伺服器共享session

2021-08-29 17:01:45 字數 1486 閱讀 9824

首先,建立儲存session的表sessions

createtablesessions(

sidchar(32)notnull,

expiryint(11)unsignednotnull,

valuetextnotnull,

primarykey(sid)

); 註冊session的頁面session_reg.php

<?

session_start();//會話開始

$sid=session_id();//每次建立會話都會產生乙個唯一的sessionid,函式session_id()不帶引數時取得當前會話的id

$_session["sesname"]="value_of_sesname";//註冊變數

$_session["sesname2"]="value_of_sesname2";

$sess_text=session_encode();//將當前會話的資料進行編碼

$expiry=time()+3000;//設定session有效時間

$conn=mysql_connect($db_host,$db_user,$db_passwd);//連線資料庫

mysql_select_db($db_name);

mysql_query("insertintosessionsvalues('$sid','$expiry','$sess_text')");//儲存當前會話的內容

header("location:");

?>;

使用session的頁面echoses.php

<?

$conn=mysql_connect($db_host,$db_user,$db_passwd);

mysql_select_db($db_name);

session_id($sid);//設定session-id,注意函式session_id()此時帶有引數,就是前面傳過來的sid.

//此時函式用來設定當前會話的id號(session-id),這種用法時,函式需在session_start()之前別呼叫

$rs=mysql_query("selectvaluefromsessionswheresid='$sid'");//去會話內容

if(mysql_num_rows($rs))session_decode(mysql_result($rs,0,"value"));//將會話資料進行解碼

session_start();//會話開始

echo"sesname=".$_session["sesname"];

echo"

;sessname2=".$_session["sesname2"];

?>;

此實現session共享的方法通過每次會話的session-id都不同,將會話內容儲存在資料庫中.然後通過session-id在將資料庫中的會話資料取出進行驗證.將會話內容儲存在資料庫中,可以實現session在不同主機之間共享.

跨伺服器session共享

1.基於nfs的session共享 nfs是net filesystem的簡稱,最早由sun公司為解決unix網路主機間的目錄共享而研發。這個方案實現最為簡單,無需做過多的二次開發,僅需將共享目錄伺服器mount到各頻道伺服器的本地session目錄即可,缺點是nfs依託 於復 雜的安全機制和檔案系...

PHP多台伺服器跨域SESSION共享

業務規模和訪問量的逐步發展,原本由單台伺服器 單個網域名稱的迷你 架構已經無法滿足發展需要。如 dns輪詢 radware f5 lvs等 讓多個頻道共享一組伺服器。ok,頭腦中我們已經構思了這樣的解決方案,不過進入深入開發後新的技術問題又隨之而來 我們把 程式分布部署到多台伺服器上,而且獨立為幾個...

伺服器實現 如何實現session跨伺服器共享

session共享有多種解決方法,常用的有四種 客戶端cookie儲存 伺服器間session同步 使用集群管理session 把session持久化到資料庫。1.客戶端cookie儲存 以cookie加密的方式儲存在客戶端,每次session資訊被寫在客戶端,然後經瀏覽器再次提交到伺服器,即使兩次...