场景
我为 iFrame 源和网站使用相同的 URL。
主网址是:https://www.disciplinexgames.com/beta/index
在iFrame中是:< iframe src="https://www.disciplinexgames.com/beta/index?key=YW41y7o0ejxWVVWv7tGOv1eZMdsdew&an=pactpro&uname=mark@example.com&web=www.pactpro.net">< /iframe>
Iframe适用于希望在自己的网站上提供我们服务的合作伙伴,在这种情况下 http://www.pactpro.net。主URL供我们自己的用户浏览平台。
因此,前端和后端中的代码对于两者是相同的,在iFrame中,我们只是更改了我们的合作伙伴提供的徽标,名称,背景颜色等。
问题
问题是第一次加载iFrame时,我能够使用$_REQUEST
或$_GET
从URL获取以下内容。但是当用户进入iFrame中的其他页面时,$_GET['key']
返回空白,因此它无法从URL获取数据。
key=YW41y7o0ejxWVVWv7tGOv1eZMdsdew
an=pactpro
uname=mark@example.com
web=www.pactpro.net
是否可以像我们第一次获得的那样从iFrame src获取每个页面上的数据。iFrame 源始终保持不变,但当涉及到从 iFrame 源获取数据时,它返回空白。
我非常感谢您在这方面的指导。
关于我的评论,看看这个函数
<?php
function hyperlink($url, Array $persist, Array $source) {
$variables = array();
foreach ($persist as $key)
{
if (isset($source[$key]))
{
$variables[$key] = $source[$key];
}
}
return $url.'?'.http_build_query($variables);
}
在您的模板上,每次您想要输出 URL 时,您都必须这样做
<?php echo hyperlink('http://example.com', $iframe_vars, $_GET); ?>
其中$iframe_vars
必须是具有与 iframe 一起使用的变量名称的数组,并且必须在请求中持久化
<?php
$iframe_vars = array('key','an','uname','web');
iframe 中的网站在看到您的$GET参数时必须设置 cookie,并在下次请求时检查 cookie
编辑:
您还可以使用 javascript 更改所有链接以添加您的密钥(如果站点位于 iframe 中(。
if (window!=window.top){
var list = document.getElementsByTagName('a');
[].forEach.call(list, function(el){
el.href += el.href.indexOf('?')>0 ? '&key=yourKey' : '?key=yourKey';
});
}