2017-10-05 134 views
1

我的情況如下。我有一個cakephp項目和一個分離的純php腳本在同一臺服務器上運行。 當我使用我的客戶端瀏覽器連接到cakephp項目時,它會根據需要構建一個會話。在php腳本上繼續cakephp 3 session

現在我想用我的純php腳本繼續會話數據。我再次使用相同的客戶端瀏覽器來訪問純php腳本(所以請求元數據應該是相同的,會話應該被識別),我設置cakephp會話選項給PHP。

'Session' => [ 
    'defaults' => 'php', 
], 

但是,我無法找到如何繼續在純php腳本會話。 我會承擔我的純PHP腳本中的兩行會做的魔力:

session_start(); 
echo json_encode($_SESSION); 

親切的問候, 馬呂斯

回答

5

CakePHPs PHP會話默認(如所有內置的默認值)不改變會話(session.name INI設置)的餅乾/名稱的名稱CAKEPHP

https://github.com/cakephp/cakephp/blob/3.5.3/src/Network/Session.php#L133-L138

所以,你要麼必須改變以匹配您的香草PHP應用程序使用的默認值(這是最有可能PHPSESSID,即PHP默認):

'Session' => [ 
    'defaults' => 'php', 
    'cookie' => session_name(), // would use the PHP default 
], 
// ... 

或更改後的應用程序使用配置的名稱您CakePHP程序:

session_name('CAKEPHP'); 
session_start(); 
// ... 

另外,還要確保session.cookie_pathsession.cookie_domain配置涵蓋了您的應用程序位置。

又見