使用Chrome& amp;在iFrame中丢失PHP会话IE

时间:2012-05-31 20:41:24

标签: php internet-explorer session google-chrome

问题:

我遇到了将会话变量从父页面传递到iFrame页面以及在Chrome和Linux中称为PHP文件的AJAX的问题。 IE浏览器。它似乎适用于FF和Safari。

环境:

我将Wordpress作为我的“门户”。我的一个Wordpress页面是“仪表板”。该Dashboard针对CRM Web服务发出AJAX请求以呈现JSON数据。 Wordpress,Dashboard文件和CRM都在同一个域中。 “www.domain.com/wordpress”是Wordpress域名,“www.domain.com/dashboard/dashboard.php”是在Wordpress页面上通过iFrame包含的仪表板文件,以及“www.domain.com/CRM” /webservice.php“是我正在进行AJAX调用的Web服务文件。

方法

用户使用LDAP登录Wordpress。我从Wordpress中获取用户名并将其转储到$_SESSION['WPUsername']变量中,作为Wordpress登录功能的扩展。然后,当我的仪表板加载到iFrame中时,它通过jQuery $.get()向我的CRM Web服务文件发出请求。 webservice.php收到请求,然后使用$_SESSION['WPUsername']会话变量在内部查询相应的数据并返回响应。

问题:

Firefox工作正常。 IE& Chrome似乎认为$_SESSION['WPUsername']要求时webservice.php不存在。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我对PHP配置和网站进行了所有建议的更改。我将php.ini中的cookie路径设置为“/”,并在iFrames中使用了完整的子域路径(“www.domain.com/dashboard/dashboard.php”)。现在似乎工作正常。

另一方面,我刚刚使用OpenAM作为IdP和SimpleSAMLphp作为SP实现了SSO。不再需要会话cookie来管理身份验证,现在使用Web服务完成组件之间传递的所有数据。