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

首頁 > 語言 > PHP > 正文

PHP實現(xiàn)cookie跨域session共享的方法分析

2024-05-05 00:11:02
字體:
供稿:網(wǎng)友

本文實例講述了PHP實現(xiàn)cookie跨域session共享的方法。分享給大家供大家參考,具體如下:

做過web開發(fā)的小伙伴們都了解cookie和session,cookie是存儲在客戶端的,session是存儲在服務(wù)器的。

本篇主要通過一些實踐中的案例和大家分享一下踩到坑,重點說明了cookie跨域問題和session服務(wù)器共享問題,以php語言為使用語言進行說明。

先聊聊cookie

設(shè)置cookie無效

setcookie("sso", "e589hR6VnO8K1CNQZ4PSP/LWGBhRKE5VckawQwl1TdE8d4Q5E7tW", 900);

這個問題很多剛?cè)腴Tphp的小伙們都會碰到。這個代碼的本意應(yīng)當(dāng)是想設(shè)置cookie sso的有效期為15分鐘,可是執(zhí)行這個代碼后發(fā)現(xiàn)沒有效果。為什么呢?因為第三個參數(shù)expire表示的是過期的時間節(jié)點,而不是有效時間,所以如果希望設(shè)置cookie為15分鐘,正確的做法應(yīng)當(dāng)是獲取當(dāng)前的時間戳加上15分鐘。

setcookie這個函數(shù)還有path、domain參數(shù)都比較常用,強烈建議剛學(xué)php的小伙們多翻閱手冊。php手冊地址: http://php.net/manual/zh/index.php

獲取cookie值獲取不到

先看這樣一段代碼

setcookie("sso", "e589hR6VnO8K1CNQZ4PSP/LWGBhRKE5VckawQwl1TdE8d4Q5E7tW", time() + 900);var_dump($_COOKIE["sso"]);

要解決這個問題,要先了解一下setcookie后發(fā)生了什么?因為cookie是保存在客戶端的,php是服務(wù)端語言,實際上setcookie之后只是在返回的http頭增加一個cookie的頭信息,告訴客戶端需要設(shè)置一個醬紫的cookie,如下圖:

PHP,cookie,跨域,session

php中setcookie返回的http頭

而$_COOKIE這個數(shù)組里面保存客戶端傳遞上來的cookie。自然第一次刷新的時候因為客戶端沒有相應(yīng)的cookie值,所以$_COOKIE是沒有sso的信息的。第一次請求過后,因為服務(wù)器設(shè)置了cookie sso,所以第一次請求過來客戶端就有了cookie sso的信息,所以第二次請求的時候就會帶上sso的信息,服務(wù)端就能通過$_COOKIE取到值了。

cookie跨域問題

這個可以說是cookie中一個比較熱門的問題,面試的時候一般很愛聊這方面的問題。

跨域的業(yè)務(wù)需求大概是醬紫:用戶在a.com進行了登錄,希望在b.com也同步進行了登錄。如果是同一個主域比較簡單,可以通過setcookie中的domain參數(shù)進行設(shè)定:例如有x.a.com和xx.a.com,可以通過設(shè)置domain為a.com,從而a.com的所有二級域名都可以共享這一個cookie?;诎踩矫娴脑?,在a.com下面設(shè)置domain為b.com是無效的。

那么是否真的沒有辦法可以實現(xiàn)這個了呢?這個還是有一些奇巧淫技的,這里介紹一種使用內(nèi)框iframe的方法。

具體思路:在a.com下設(shè)置cookie后,嵌入一個iframe框鏈接b.com的頁面,b.com設(shè)置好頁面cookie后,再嵌入一個a.com的頁面,然后通過parent.parent就可以調(diào)用最外層的a.com的js方法,從而進行跳轉(zhuǎn)或者一些其它的操作。具體代碼示例如下:

假設(shè)a.com有頁面:login.php和callback.php,b.com有頁面synclogin.php

a.com的login.php代碼:

<?php$sso = "e589hR6VnO8K1CNQZ4PSP/LWGBhRKE5VckawQwl1TdE8d4Q5E7tW";setcookie("sso", $sso);?>login success...<script type="text/javascript">  function jumpTo() {    location.href = "http://a.com";  }</script><iframe src="http://b.com/synclogin.php?sso=<?php echo $sso; ?>"></iframe>

b.com的synclogin.php頁面

<?phpsetcookie("sso", $_GET["sso"]);?><iframe src="http://a.com/callback.php"></iframe>

a.com的callback.php頁面

<script type="text/javascript">  parent.parent.jumpTo();</script>

代碼看起來也不難,值得一提的是這里嵌入了兩個iframe,因為如果只用一個iframe的話,即在b.com的synclogin.php內(nèi)直接調(diào)用父窗體的jumpTo方法,在有些瀏覽器下會提示沒有權(quán)限的錯誤:
Error: Permission denied to access property

這里只是演示了cookie跨域同步的思路,具體細(xì)節(jié)還有很多可以改進的地方,比如iframe鏈接的頁面可以考慮改成靜態(tài)的頁面,這樣效率會比php動態(tài)頁面快很多,還有像參數(shù)校驗、多個主域(比如還有c.om)同時登錄等等,這里就不再累述。

cookie的總結(jié)到這里就結(jié)束,如果你感覺有一些收獲,可以在頁面底部掃碼給我打賞喲,感謝O(∩_∩)O~

session

$_SESSION沒有值

這個session使用和cookie有一點不太一樣,session使用前必須先調(diào)用session_start方法。否則會收到一個undefined的錯誤:
Notice: Undefined variable: _SESSION

session存儲在哪

session存儲在服務(wù)端,但是session究竟是存儲在哪呢?php.ini中關(guān)于session有一個save_path的選項可以設(shè)置存放的目錄,如果這個選項沒有設(shè)置值,那么就存儲在系統(tǒng)默認(rèn)的tmp目錄下。默認(rèn)的tmp目錄可以通過sys_get_temp_dir方法取到。

例如在mac下面,php的session一般會存儲在/var/tmp目錄下。

session_start();echo session_id();//本例輸出ipkl446enhae25uq92c28u4lo3$_SESSION['name'] = "tony”;$_SESSION['users'] = array("tony", "andy");

通過session_id方法可以取到當(dāng)前的session編號,通過這個編號可查看一下該session文件。

$ sudo more /var/tmp/sess_ipkl446enhae25uq92c28u4lo3name|s:4:"tony";users|a:2:{i:0;s:4:"tony";i:1;s:4:"andy";}

可以清楚的看到session存儲數(shù)據(jù)的結(jié)構(gòu),其中值是用序列化的方式進行轉(zhuǎn)化存儲的。

session也用了cookie

session不是存儲在服務(wù)端嗎,怎么又和cookie扯上關(guān)系了?其實想想也簡單,因為客戶端再請求的時候,服務(wù)端怎么樣才能知道該客戶端的session存儲在哪個文件呢?其實也是通過cookie PHPSESSID來進行標(biāo)識。

PHP,cookie,跨域,session

php中session的cookie標(biāo)識

php在進行session操作的時候會生成一個session id,而后把這個值以cookie的形式保存在客戶端,就是圖示中的PHPSESSID了。客戶端在下次請求的時候就會帶上這個PHPSESSID,服務(wù)端就能知道當(dāng)前客戶端對應(yīng)的session文件了

session超時設(shè)置

cookie超時設(shè)置比較簡單,一個參數(shù)就搞定了。session這邊有點小麻煩,既不能單獨設(shè)置cookie PHPSESSID的超時時間,也不能單獨設(shè)置服務(wù)端文件的超時時間。具體的可以參考鳥哥這篇文章:如何設(shè)置一個嚴(yán)格30分鐘過期的Session,真的非常嚴(yán)謹(jǐn),贊一下。

session服務(wù)器共享

這個問題和cookie的跨域類似,面試的時候也很愛聊這個問題。

以前在做服務(wù)器集群的時候會碰到這樣的一樣問題,就是用戶一會訪問是處于正常登錄狀態(tài),一會訪問又沒有登錄了。這個問題偶爾才會出現(xiàn)。跟蹤代碼下去才發(fā)現(xiàn)session沒有取到相應(yīng)的值,想想也是醉了:原來服務(wù)器session沒有設(shè)置共享,session存在在本地文件目錄,當(dāng)用戶訪問另外一臺服務(wù)器的時候自然就取不到session了。

解決方法也不難,通過共享的存儲在進行服務(wù)器之間的共享。這里使用redis的進行session存儲??梢酝ㄟ^php.ini配置文件進行調(diào)整,也可以在代碼中通過ini_set進行調(diào)整

ini_set("session.save_handler", "redis");ini_set("session.save_path", "tcp://127.0.0.1:6379”);

如果需要使用redis進行存儲,需要session中的Registered save handlers支持redis

PHP,cookie,跨域,session

php中session是否支持redis

當(dāng)這樣設(shè)置之后,session就會保存在redis中了,不同的集群服務(wù)器之間就可以通過該redis服務(wù)器進行共享了。

好吧,暫時就寫到這里了,以后會發(fā)現(xiàn)新的坑會繼續(xù)補充上來。

希望本文所述對大家PHP程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

色94色欧美sute亚洲线路一久| 欧美丰满少妇xxxbbb| 亚洲国产视频在线| 小明看看成人免费视频| 欧美日韩三级电影在线| 免费观看一级欧美片| 色综合色综合色综合| 日韩精品一区二区三区丰满| 中文在线免费一区三区| 要久久爱电视剧全集完整观看| 激情视频在线观看一区二区三区| 成视频在线免费观看| 九色视频一区| 成人在线播放av| 男女免费网站| 亚洲精品xxxx| 激情se五月| 日韩电影免费在线观看中文字幕| 91精品久久久久久久91蜜桃| 99久久精品99国产精品| 欧美精品久久久久久久久老牛影院| 哺乳挤奶一区二区三区免费看| 亚洲视频一二三区| 可以免费看不卡的av网站| 国产女主播视频一区二区| 在线精品国产欧美| 丝袜美腿美女被狂躁在线观看| 国产精品免费视频二三区| 国产黄在线看| 激情五月婷婷综合| 欧美电影免费网站| 在线天堂资源www在线污| 91在线观看高清| 欧美疯狂party性派对| 超碰在线97观看| 欧美国产日韩一区二区| 一区二区三区免费在线| 538prom精品视频线放| 久久综合久久综合九色| 一级视频在线免费观看| 国产一区二区三区播放| 激情视频在线观看一区二区三区| 欧美成人激情视频免费观看| 97国产在线播放| 男人精品网站一区二区三区| yw.139尤物在线精品视频| japan高清日本乱xxxx| caoporn免费在线视频| 最新在线黄色网址| 国产日产欧美一区二区| 色噜噜狠狠狠综合欧洲色8| 天天操天天操天天操天天操天天操| 免费看片91| 在线一区二区三区做爰视频网站| 欧美性受ⅹ╳╳╳黑人a性爽| 成人一区二区电影| 欧美一二三区精品| 伊人资源视频在线| 亚洲综合国产| 天堂tv亚洲tv日本tv欧美人tv| 亚洲调教欧美在线| 成人福利视频在线| 精品无码黑人又粗又大又长| 蜜桃视频涩涩| 精品欧美午夜寂寞影院| 久久久加勒比| 国产成人8x视频一区二区| 一本大道久久a久久综合| 网站免费满18成年在线观看| 先锋影音av资源在线| 日韩高清二区| 亚洲成人中文字幕在线| 亚洲精品久久久久| 日韩精品在线观看一区二区| 91论坛在线播放| 亚洲欧美丝袜| 欧美色资源站| 日本免费专区| 国产亚洲精品bt天堂精选| 欧美日韩一区二区三区不卡| 亚洲黄网在线观看| 欧美 日韩 国产在线| 精品国产乱码久久久久酒店| 黑人巨大精品欧美一区二区小视频| 中文字幕亚洲专区| 99精品视频在线播放免费| 伊人久久精品一区二区三区| 性色av一区二区| 玖玖精品在线| 亚洲男人天堂久| 成熟丰满熟妇高潮xxxxx视频| 国产一区二区在线网站| 稀缺呦国内精品呦| 欧美激情精品久久久久久免费印度| 免费成人蒂法| 男人的天堂最新网址| 国内小视频在线看| 国产精品午夜福利| 爱啪啪综合导航| 嫩模一区二区三区| 日韩电影中文 亚洲精品乱码| 在线视频欧美性高潮| 国产精品视频色| 亚洲男人av在线| 欧美精品久久久久久久久久丰满| 欧美亚洲成人网| 亚洲成人av福利| 欧美3p视频| 欧美黄色www| 久草免费福利视频| 韩国av永久免费| 久久成人免费电影| 欧美优质美女网站| 日韩av片在线看| 无码人妻精品一区二区中文| 女人爱爱视频| 亚洲美洲欧洲综合国产一区| www.黄色片| a在线欧美一区| 亚洲aaaaaa| 成人影院在线观看| 亚洲综合天堂网| 少妇无套高潮一二三区| 日韩亚洲国产免费| 国产一区二区三区四区五区美女| av在线www| 日韩欧美伦理电影院| 欧美肉体xxxx裸体137大胆| 欧美xxxx黑人xyx性爽| 欧美美女被草| 日本精品一二三区| 亚洲av无码一区东京热久久| 日本一区二区三区精品视频| 欧美三级黄色大片| 久久久久人妻一区精品色欧美| 国产在线一二| 五月婷婷深爱五月| 精品成人av一区二区在线播放| 中文字幕有码在线| 黑人中文字幕一区二区三区| 国产一区二区三区蝌蚪| 巨大黑人极品videos精品| 91免费精品国偷自产在线| 国产美女在线精品免费观看| 国产午夜麻豆影院在线观看| av首页在线观看| 精品国产一区二区三区不卡| 日本精品视频在线观看| 欧美丰满片xxx777| 91福利资源站| 日韩欧美中文字幕一区| 亚洲午夜精品一区二区三区他趣| 精灵使的剑舞无删减版在线观看| 成人免费直播在线| 日韩欧美国产wwwww| 日韩一二三区| 国产精品77777竹菊影视小说| 91亚洲精品乱码久久久久久蜜桃| 天天色天天看| 日本一区二区成人在线| 一区二区三区伦理片| 豆国产97在线|亚洲| 99热这里精品| 国产日韩欧美高清在线| 欧美午夜精品久久久久久人妖| 欧美激情中文不卡| 精精国产xxxx视频在线野外| 国产白嫩美女无套久久| 另类图片亚洲色图| 免费一区二区三区视频狠狠| 日本不卡一区二区三区高清视频| 小黄鸭精品aⅴ导航网站入口| 亚洲va综合va国产va中文| 亚洲丶国产丶欧美一区二区三区| 天天躁日日躁狠狠躁欧美巨大小说| jizzjizzjizzjizzjizzjizzjizz| 国产丝袜一区二区三区免费视频| 国产午夜精品麻豆| 久久久久久久久久久国产| 青青艹视频在线| 国产精选久久久| 欧洲精品在线一区| 亚洲成在人线免费观看| 菠萝菠萝蜜在线视频免费观看| 日韩av无码一区二区三区不卡| 国产一卡2卡3卡免费网站| 国产精品538一区二区在线| 深夜福利视频在线观看| 亚洲三区在线播放| 欧美午夜久久久| 国产一区二区精品在线| 国产又大又黄视频| 欧美69wwwcom| 日本不卡一二区| 久久一区二区三区国产精品| 视频在线观看一区| 一区二区三区波多野结衣在线观看| 色综合av综合无码综合网站| 久久久999国产精品| 色偷偷88888欧美精品久久久| 日本三级电影网站| 国产成人一级片| xxxxx日韩| www.欧美色图| 毛片在线网址播放| 成人高清在线观看| 97久久综合区小说区图片区| 国产一区二区小视频| 三级三级久久三级久久18| 乳奴隷乳フ辱julia在线观看| 99热成人精品热久久66| 精品无码三级在线观看视频| 中文字幕免费在线视频| 日本成人在线播放| 韩国三级电影久久久久久| 又黄又免费的网站| 成人免费va视频| 中文字幕欧美人妻精品一区| 91tv亚洲精品香蕉国产一区7ujn| 国产美女高潮一区二区三区| 羞羞电影在线观看www| 自拍偷拍你懂的| 免费又黄又爽又猛大片午夜| 都市激情在线视频| 久久国内精品一国内精品| 四虎永久在线观看| 欧美午夜性春猛xxxx| 日日夜夜精品一区| 欧美精品一区二区三区在线四季| 精品国产无码AV| 捆绑调教美女网站视频一区| 亚洲欧美韩国| 污视频网站观看| 黄视频网站在线看| 欧美日韩精品福利| 日韩黄色在线播放| 秋霞毛片大全| 久久av免费| 午夜小视频福利在线观看| 国产喷白浆一区二区三区| 一级毛片免费在线| 日本最黄视频| 日本一本高清视频| 成本人h片动漫网站在线观看| 久久青草国产手机看片福利盒子| 亚洲激情在线激情| 国色天香一区二区| av 一区二区三区| 欧美爱爱视频网站| 欧美情侣性视频| 视频免费在线观看| 中国色在线日|韩| 蜜桃999成人看片在线观看| 国产精品成人av| 国产h色视频在线观看| 正在播放一区二区| 色视频免费版高清在线观看| 日韩av电影免费播放| 日本一区免费网站| 亚洲美女免费精品视频在线观看| 手机在线观看免费av| 嫩草嫩草嫩草嫩草嫩草| 亚洲1卡2卡3卡4卡乱码精品| 一区二区三区视频免费视频观看网站| 欧美黑人巨大xxxx猛交| 国产精品久久久久久久久电影网| 亚洲人成伊人成综合网久久久| 天堂在线看视频| 丰满饥渴老女人hd| av电影在线观看| 欧美日韩导航| 五月婷婷久久久| 成人四虎影院| 99视频精品全部免费在线| 最近国语视频在线观看免费播放| www.99av.com| 在线观看福利电影| 亚洲一区免费在线| 久久久中文字幕| 99久久久久| 国产精品一国产精品| 国产欧美久久久精品影院| 国产电影精品久久禁18| 欧美成人aaa片一区国产精品| 日本系列欧美系列| 成人疯狂猛交xxx| 亚洲区第一页| 欧美日韩一二三| 欧美77777| 亚洲欧洲国产专区| 毛片网站大全| 国产在线播放一区二区三区| 色综合一区二区日本韩国亚洲| 免费在线欧美黄色| 欧美精品1区2区3区| fc2ppv完全颜出在线播放| 欧美18xxxxx| 久久免费视频在线观看| 成人免费视频一区| 精品一区二区三区四区五区| 欧美国产亚洲精品| 日韩毛片一区二区三区| 欧美性www| 狠狠狠综合7777久夜色撩人| 国内不卡的二区三区中文字幕| 欧美在线视频导航| 国产又粗又猛又爽又| 91中文字幕一区| 亚洲一区综合| 久久99热只有频精品91密拍| 一区二区三区久久精品| 欧美日韩成人免费视频| 日皮视频在线免费观看| 三级全黄视频| 久久精品91久久久久久再现| 中文字幕亚洲欧美日韩| 日韩和欧美的一区| 天堂99x99es久久精品免费| 久久亚洲精品中文字幕冲田杏梨| 五月激情婷婷网| 成人亚洲视频| 91精品国产一区二区在线观看| 欧美日韩精品一区二区视频| 国产网友自拍视频导航网站在线观看| 老司机福利在线观看| 韩国精品一区二区三区| 久草热视频在线观看| 精品成人国产在线观看男人呻吟|