日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 跨域名存储cookie,实现跨域名Cookie

發布時間:2025/3/19 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 跨域名存储cookie,实现跨域名Cookie 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Cookie真是一個偉大的發明,它答應web開發者保留他們的用戶的登錄狀態。然而,當你的站點或網絡

有一個以上的域名時就會出現問題了。

在Cookie規范上說,一個cookie只能用于一個域名,不能夠發給其它的域名。因此,假如在瀏覽器中對一個域名設置了一個cookie,這個cookie對于其它的域名將無效。假如你想讓你的用戶從你的站點中的其中一個進行登錄,同時也可以在其它域名上進行登錄,這可真是一個大難題。

我的解決方案將使用下面的一般框架:

一個預置的腳本將用來接受通過GET或COOKIE方式傳遞過來的sessionid號。它將比COOKIE優先選擇GET

變量。所以,無論何時需要引用交叉的域名時,我們把sessionid做為一個URL參數進行發送。修改Apache配置,用來實現重寫所有的交叉域名的cookie。這樣做的原因一會兒就會清楚了。在任何時候出現一個交叉域名引用時使用變量。

第一步:創建預置腳本

將下面的代碼加到預置腳本中(或出現在所有腳本之前的函數中)。

/* 支持交叉域名cookie... */

// 假如GET變量已經設置了,并且它與cookie變量不同

//則使用get變量(更新cookie)

global $HTTP_COOKIE_VARS, $HTTP_GET_VARS;

if (isset($sessionid) && isset($HTTP_GET_VARS['sessionid']) && ($HTTP_COOKIE_VARS['sessionid'] != $HTTP_GET_VARS['sessionid'])) {

SetCookie('sessionid', $HTTP_GET_VARS['sessionid'], 0, '/', '');

$HTTP_COOKIE_VARS['sessionid'] = $HTTP_GET_VARS['sessionid'];

$sessionid = $HTTP_GET_VARS['sessionid'];

}

?>

一旦這個代碼運行之后,一個全局的'sessionid'變量將可以用于腳本。它將保存著用戶的cookie中的

sessionid值,或者是通過GET請求發來的sessionid值。

第二步:為所有的交叉域名引用使用變量

創建一個全局的配置文件,用于存放可以進行切換的域名的基本引用形式。例如,假如我們擁有

domain1.com和domain2.com,則如下設置:

$domains['domain1'] = "http://www.domain1.com/-$sessionid-";

$domains['domain2'] = "http://www.domain2.com/-$sessionid-";

?>

現在,假如在代碼中如下做:

echo "Click <a href="", $domains['domain2'], "/contact/?email=yes">here</a> to contact us.";

?>

總結

以上是生活随笔為你收集整理的php 跨域名存储cookie,实现跨域名Cookie的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。