繁体   English   中英

在Chrome和IE的iFrame中丢失PHP会话

[英]Losing PHP sessions in iFrame with Chrome & IE

题:

我在将会话变量从父页面传递到iFrame页面和在Chrome&IE中称为PHP文件的AJAX时遇到问题。 它似乎可以在FF和Safari中使用。

环境:

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

方法:

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

问题:

Firefox运行正常。 webservice.php请求时,IE和Chrome似乎认为$_SESSION['WPUsername']不存在。

我想念什么?

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

另外,我只是使用OpenAM作为IdP和SimpleSAMLphp作为SP来实现SSO。 不再需要会话cookie来管理身份验证,并且组件之间传递的所有数据现在都可以使用Web服务完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM