首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

解決 PHP 在 IE7 iframe 中 Session 丟失問題

     編輯:PHP 相關知識

問題現象

網站嵌入 iframe 時,IE7 下 Session 無法保持,Firefox、Chrome、IE6、IE8+ 均正常。

根本原因

IE7 對第三方 iframe 的隱私策略 (P3P) 較嚴格,阻止 Cookie 寫入,導致 Session ID 無法傳遞。

解決方案

在 session_start() 之前發送 P3P 標頭:

<?php
header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');
session_start();
// 後續業務邏輯
?>

補充注意事項

  • 二級域名包含底線 (如 your_domain.example.com) 也會導致 Cookie 失效,建議域名避免使用底線
  • 此標頭需在任何輸出前發送,建議放在公共引入文件最頂部
  • 現代瀏覽器 (IE10+, Edge, Chrome, Firefox) 已不再依賴 P3P,但保留無副作用

驗證方法

開啟 IE7 開發者工具 (F12) → 網路 → 檢查回應標頭是否包含 P3P,並確認 Cookie 正常設置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved