从 iFrame 中每个页面上的 iFrame URL 获取数据


Get data from iFrame URL on every page within the iFrame

场景

我为 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';
    });
}