Cookie 在 PHP 跨域請求中的應用主要涉及到如何在不同域名的網站之間共享和傳遞用戶信息。這里有一個簡單的例子來說明如何在 PHP 中實現跨域請求的 Cookie 共享。
假設我們有兩個域名:domain1.com 和 domain2.com,我們希望在這兩個域名之間共享用戶登錄狀態。
<?php
// set_cookie.php
session_start();
// 檢查用戶是否已登錄,這里只是一個示例,實際情況可能需要驗證數據庫等操作
if (!isset($_SESSION['user_id'])) {
$_SESSION['user_id'] = 1; // 假設用戶 ID 為 1
}
// 設置一個跨域的 Cookie
setcookie('user_id', $_SESSION['user_id'], time() + 3600, '/', '.domain1.com');
echo 'Cookie has been set!';
?>
<?php
// get_cookie.php
session_start();
// 檢查是否存在跨域的 Cookie
if (isset($_COOKIE['user_id'])) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
echo 'User is logged in with user_id: ' . $_SESSION['user_id'];
} else {
echo 'User is not logged in.';
}
?>
.htaccess
文件中添加以下內容:Header set Access-Control-Allow-Origin "http://www.domain2.com"
Header set Access-Control-Allow-Credentials "true"
這樣,當用戶訪問 domain1.com 時,他們的登錄狀態會被設置到一個跨域的 Cookie 中。當他們訪問 domain2.com 時,該網站可以從 Cookie 中獲取用戶的登錄狀態,并根據需要進行相應的處理。
請注意,這只是一個簡單的示例,實際應用中可能需要考慮更多的安全性和隱私問題。在實際項目中,你可能需要使用更安全的方法來驗證用戶身份,例如使用 JSON Web Token(JWT)等技術。