如果您不想設置任何本地cookie,則需要堅持會話。跨子域的會話與僅在一個域上的會話略有不同。所以讓我們開始吧。
首先我們需要給我們的會話cookie一個新的session_name()。我們需要這樣做,因爲在設置cookie參數之前必須定義會話名稱。這將存儲舊會話名稱$old_name
下和更新您的會話的名稱爲「some_name」:
$old_name = session_name("some_name");
下一步,我們將不得不與session_set_cookie_params()設置會話cookie參數。這裏我們告訴我們的服務器的會話cookie將函數,其中:
session_set_cookie_params(0, '/', '.tld.com');
由第三paramenter(域「tld.com」),以點之前,我們需要確保讓會話cookie將會對所有可見子域。作爲替代方案,你也可以使用:
ini_set('session.cookie_domain', '.tld.com');
最後ofcourse我們需要啓動或在我們的腳本恢復我們的會議與session_start():
session_start();
所以總結起來,你應該有這個每個腳本的頂部將使用您的會話:
<?php
$old_name = session_name("some_name");
session_set_cookie_params(0, '/', '.tld.com');
//ini_set('session.cookie_domain', '.tld.com'); //Uncomment and comment above line if prefered.
session_start();
作爲一個旁註,我應該包括設置php.ini參數不允許在大多數共享主機提供商。此腳本假設您已完全訪問您的服務器,或者至少有一個願意讓您更改這些設置的提供商。
你可以設置一個cookie來跨度子域 –
http://stackoverflow.com/questions/18492576/share-cookie-between-subdomain-and-domain – DeDee