亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php如何通過多站點共享seeion實現單點登錄(代碼示例)

2020-03-22 17:42:43
字體:
來源:轉載
供稿:網友

本篇文章給大家帶來的內容是關于php如何通過共享seeion實現單點登錄(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

最近閑來無事,總結整理下單點登錄的問題。

單點登錄的基本原理為:客戶端共享sesionid,服務器端共享session信息。通過共同的sessionid在服務器端獲得相同session信息,即可達到單點登錄(即多站點共享用戶信息,一處登錄,處處可用)的目的。

單點登錄分為兩種情況:

一、站點部署在同一個服務器,且使用同一個二級域名

這種情況下,比較好解決。

1、首先解決站點在客戶端sessionid(存在cookie中)的共享問題。使用ini_set()函數即可指定cookie的域,如下:
ini_set( session.cookie_domain , .xxxx.com //設置服務器cookie的域,xxxx為公用二級域名
2、其次解決站點在服務端的session信息的共享。因為站點在同一個服務器,所以生成的session文件是可以公用的,可以直接使用sessionid獲取對應的session信息。二、站點部署在不同的服務器,使用不同域名

這種情況比較復雜,因為站點在不同服務器使用不同域名,在客戶端不能使用ini_set設置cookie的作用域,在服務器端也是各自生成自己的session文件,不能共用,但還是用解決的辦法。

1、首先解決客戶端sessionid同步問題。

假設我們有三個站點,域名分別是aa.com,bb.com,cc.com。我們在aa.com上建立一個共用的登陸入口login.php,三個網站的登陸請求全部跳轉到該頁面。代碼流程如下:

 $back = login($name,$pwd);//執行登陸操作,成功就寫入session //如果登錄成功,進行以下操作流程 if($back){ $sessionid = session_id();  $key = encode($session,$keyword);//生成安全碼 //輸出一個登陸成功提示頁,并跳轉到請求登陸的站點 }

在登陸成功html提示頁面中添加如下代碼,利用iframe標簽請求需要同步登陸的站點
這里寫圖片描述
aa.com和cc.com站點的set_cookie.php文件如下

//解密$keydecode($key);//把當前站點的sessionid設置為傳遞的sessionidsession_id($_GET[ sessionid session_start();
2、解決三個站點服務器端共享session的問題。

前面已經說過,因為三個站點不在同一個服務器,因此會生成各自的session文件,如果想要共享這些文件,又面臨跨域等一系列問題。所以我們轉化思路,不使用文件保存session信息,而是把session信息保存到數據庫中。這樣,只要獲得session信息的sessionid,任何站點都可以訪問相同的session信息。

我們創建一個mysql_session.php文件,用于存儲session信息到數據庫,代碼如下

$gb_DBname= test //數據庫名稱 $gb_DBuser= root //數據庫用戶名稱 $gb_DBpass= //數據庫密碼 $gb_DBHOSTname= 127.0.0.1 //主機的名稱或是IP地址 $SESS_DBH= //數據庫對象session_module_name( User //定義session存儲按用戶定義的方式$SESS_LIFE=get_cfg_var( session.gc_maxlifetime //得到session的最大有效期,也可以自定義function sess_open($save_path,$session_name){  global $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH;  if(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$gb_DBpass)){  echo MySql Error: .mysql_error().  die();  if(!mysql_select_db($gb_DBname,$SESS_DBH)){  echo MySql Error: .mysql_error().  die();  return true; function sess_close(){ return true; function sess_read($key){  global $SESS_DBH,$SESS_LIFE;  $qry= select value from db_session where sesskey = $key and expiry .time();  $qid=mysql_query($qry,$SESS_DBH);  if(list($value)=mysql_fetch_row($qid)){  return $value;  return false; //寫入session信息。保存session信息的數據表名為:db_session//除了主鍵自增id,需要的字段如下//sesskey sessionid//values session值//expiry session的到期日期function sess_write($key,$val){  global $SESS_DBH,$SESS_LIFE;  $expiry=time()+$SESS_LIFE;  $value=$val;  $qry= insert into db_session values( $key ,$expiry, $value )  $qid=mysql_query($qry,$SESS_DBH);  if(!$qid){  $qry= update db_session set expiry=$expiry, value= $value where sesskey= $key and expiry .time();  $qid=mysql_query($qry,$SESS_DBH);  return $qid; function sess_destroy($key){  global $SESS_DBH;  $qry= delete from db_session where sesskey = $key  $qid=mysql_query($qry,$SESS_DBH);  return $qid; function sess_gc($maxlifetime){  global $SESS_DBH;  $qry= delete from db_session where expiry .time();  $qid=mysql_query($qry,$SESS_DBH);  return mysql_affected_rows($SESS_DBH); session_set_save_handler( sess_open , sess_close , sess_read , sess_write , sess_destroy , sess_gc 

之后在需要使用session的頁面中,在session_start()之前引入該文件,其他的跟平時使用seesion一樣就可以了。你會發現你賦值的session已經被存進了數據庫中。

相關推薦:

thinkphp 二級域名站點 session共享(單點登錄)

php實現web系統單點登錄

以上就是php如何通過多站點共享seeion實現單點登錄(代碼示例)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产成人| 中文字幕av一区二区| 98视频在线噜噜噜国产| 色噜噜久久综合伊人一本| 国产成人综合久久| 亚洲精品v欧美精品v日韩精品| 国产欧美精品日韩精品| 日韩精品在线电影| 欧美wwwxxxx| 两个人的视频www国产精品| 欧美亚洲激情视频| 亚洲免费中文字幕| 欧美成人午夜剧场免费观看| 91色在线观看| 91亚洲精品久久久久久久久久久久| 亚洲人成自拍网站| 国产精品成人v| 黑人巨大精品欧美一区二区三区| 精品国产欧美一区二区五十路| 日韩在线观看网站| 亚洲精品视频中文字幕| 最近2019中文字幕在线高清| 欧美成年人在线观看| 欧美在线视频a| 欧美大全免费观看电视剧大泉洋| 欧美一级电影免费在线观看| 国产精品一区二区三区久久| 国产精品欧美激情| 亚洲自拍在线观看| 一夜七次郎国产精品亚洲| 国产日韩中文字幕在线| 日韩中文字幕在线视频播放| 久久久精品日本| 国产精品人成电影| 91精品国产乱码久久久久久蜜臀| 中文字幕欧美在线| 亚洲国产一区二区三区在线观看| 成人97在线观看视频| 久久噜噜噜精品国产亚洲综合| 亚洲剧情一区二区| 一区二区三区美女xx视频| 欧美激情免费视频| 国产国产精品人在线视| 欧美大全免费观看电视剧大泉洋| 久久亚洲国产精品| 亚洲综合色激情五月| 中文字幕无线精品亚洲乱码一区| 成人免费在线视频网站| 国产精品99久久久久久白浆小说| 国产成人高清激情视频在线观看| 91亚洲一区精品| 精品福利在线观看| 国产精品久久久久9999| 日韩亚洲国产中文字幕| 亚洲国产天堂久久综合| 久久久亚洲国产天美传媒修理工| 国产精品国产三级国产aⅴ浪潮| 国产一区二区三区视频| 国产精品视频xxxx| 亚洲人成在线电影| 欧美性猛交xxxx免费看| 韩国国内大量揄拍精品视频| 精品国产1区2区| 亚洲欧美制服丝袜| 久久精品视频播放| 亚洲肉体裸体xxxx137| 在线播放亚洲激情| 亚洲精品ady| 久久久久久久久亚洲| 狠狠躁夜夜躁人人爽超碰91| 97福利一区二区| 国产在线视频一区| 国产盗摄xxxx视频xxx69| 一本大道香蕉久在线播放29| 亚洲高清久久久久久| 欧美日韩国产在线看| 国产精品一区二区久久精品| 91亚洲国产成人久久精品网站| 91精品在线播放| 国产精品com| 成人免费视频在线观看超级碰| 日韩中文娱乐网| 亚洲精品免费在线视频| 91成人在线视频| 欧美性极品xxxx做受| 91精品国产综合久久香蕉922| 国产精品女主播视频| 奇米一区二区三区四区久久| 亚洲视频日韩精品| 精品国产91久久久久久老师| 欧美国产日韩免费| 亚洲丝袜av一区| 一区二区成人精品| 欧美日韩免费区域视频在线观看| 日韩中文字幕在线看| 国产精品www色诱视频| 在线观看欧美日韩| 国产精品久久久久久久久久久不卡| 亚洲欧美制服综合另类| 午夜精品三级视频福利| 亚洲精品国产福利| 在线成人激情黄色| 亚洲性夜色噜噜噜7777| 欧美中在线观看| 亚洲欧洲在线视频| 精品亚洲国产视频| 国产在线观看91精品一区| 欧美日韩黄色大片| 亚洲18私人小影院| 成人性生交大片免费看视频直播| 日韩在线免费观看视频| 97国产精品人人爽人人做| 国产综合在线看| 日本一欧美一欧美一亚洲视频| 中文字幕精品在线视频| 欧美整片在线观看| 欧美一级淫片丝袜脚交| 国产精品欧美一区二区三区奶水| 一区二区三区四区在线观看视频| 国产精品色视频| 亚洲人成在线一二| 中文字幕国产日韩| 国产精品亚洲欧美导航| 国产91精品高潮白浆喷水| 欧美视频二区36p| 亚洲第一视频网| 欧美专区中文字幕| 欧美激情亚洲激情| 日本久久精品视频| 日韩av在线最新| 国产亚洲精品成人av久久ww| 亚洲欧美日韩中文在线| 亚洲美女精品久久| 国产成人精品久久久| 69av视频在线播放| 亚洲精品电影网| 91久久精品国产91久久| 91国自产精品中文字幕亚洲| 成人免费高清完整版在线观看| 欧美特黄级在线| 亚洲成人动漫在线播放| 国产在线拍揄自揄视频不卡99| 亚洲精品国产精品国自产观看浪潮| 久久久最新网址| 久久精品国产99国产精品澳门| 日韩精品极品在线观看播放免费视频| 亚洲精品国产精品国自产观看浪潮| 国产美女久久精品| 亚洲一区二区日本| 日韩高清欧美高清| 亚洲激情 国产| 国色天香2019中文字幕在线观看| 亚洲久久久久久久久久久| 国产亚洲精品久久久| 色999日韩欧美国产| 国产精品观看在线亚洲人成网| 国产精品久久久久不卡| 日韩视频在线免费| 国产大片精品免费永久看nba| 欧美一级电影免费在线观看| 日韩网站在线观看| 欧洲精品毛片网站| 亚洲国产精品女人久久久| 92看片淫黄大片欧美看国产片|