Ⅰ 我們在做登陸的時候,session怎麼共享啊
session多端登錄,就是保持session的一致性。由於session是唯一的,所以要保持session的唯一性,可以將session存放在一個地方,到時候大家取的時候,統一從一個地方取session,這樣就保持了session的一致。
實現session的方法
其實就是將session存放在一個地方,大家存取就好了。至於其他都是附加的,原理就是醬紫。一般實現的方法有:
1)nfs文件共享系統,讓不同項目訪問同一個共享的文件。
2)存放在mysql。
3)存放在內存資料庫,比如redis,memcache等。
4)基於cookie的共享。這個需要域名統一。
3.關於redis的session共享,其他類似
1)php.ini裡面存放得有session的存放地址,可以將session的地址改成redis存放session的地址。session.save_path
但是一般這種伺服器端會有訪問控制。所以可以參考第二種方法
2)重寫session,通過php代碼更改session的存放路徑什麼的。php有相關的session重寫的類。
Ⅱ php 如何使用session 讓同一伺服器上的2個域名同時登錄
其實這個真正的學名叫 sso[單點登錄]
我畫個原理圖給你看吧,你應該容易理解
代碼其實沒什麼,也不是關鍵,關鍵是你的思路,人家寫的代碼也很難嵌入到你的系統中去。。
實現的方法很多,看你怎麼想。。。。
Ⅲ PHP網頁如何設置二級域名共享session
站點和站點之間是不能共享SESSION的,不管是幾級域名。但是可以通過寫cookie的方法或者單點登錄、WEBSERVICE等技術使站點之間的信息相互交換和共享。
Ⅳ php中session作用域的問題,如下圖,框架是library中的內容,現在給ad配一個域名,給admin配一個域名
在php中,伺服器端和客戶端之間的session是通過一個session_id來聯系($_COOKIE['PHPSESSID'],這個PHPSESSID可以通過session_name()修改),並且session數據是以普通文件的形式保存在一個特定的文件夾里。
所以說,只要是同一台伺服器,session數據目錄相同,且兩個域名使用了同一個session_id,那麼兩個域名就會共享session。
如果使用不同session的話,建議在兩個域名進入的時候先使用session_destroy()清除原有的session_id,然後再重新session_start()生成新的session_id,這樣就不會出現兩個站點共享session的情況了。
Ⅳ php 一級域名和二級域名怎麼公用session值能傳遞過去,到伺服器不會記錄session,怎
把session 設置在根域名下,
ini_set('session.cookie_domain', 'abc.com');