首先,建立儲存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資訊被寫在客戶端,然後經瀏覽器再次提交到伺服器,即使兩次...