PHP Session 跨域應用的案例分析
摘要:
Session 是 PHP 中常用的機制,用於在不同頁間共享資料。然而,在多個域或子域之間傳遞 Session 資料是一個挑戰。本文將透過一個具體案例,介紹如何實作 PHP Session 跨域應用,並提供對應的程式碼範例。
在 domain-a.com 上,我們建立一個名為 set_session.php 的文件,用於設定 Session 資料。程式碼如下:
<?php session_start(); $_SESSION['data'] = 'Hello, world!'; echo 'Session data has been set.'; ?>
在 domain-b.com 上,我們建立一個名為 get_session.php 的文件,用於讀取 Session 資料。程式碼如下:
<?php header('Access-Control-Allow-Origin: domain-a.com'); // 允许 domain-a.com 跨域访问 header('Access-Control-Allow-Credentials: true'); // 允许携带 Cookie session_start(); echo 'Session data: ' . $_SESSION['data']; ?>
在實際使用中,需要確保設定的 Session 資料在存取 domain-b.com 之前已經儲存。可以透過存取 set_session.php 來設定 Session 數據,並在接下來的存取中讀取。
另外,為了允許攜帶Session Cookie,我們需要在設定'Access-Control-Allow-Credentials' 頭部欄位的值為true,並且在domain-b.com 的伺服器設定中,將同源策略設定為具體的域名,而非通配符。
參考資料:
以上是PHP Session 跨域應用的案例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!