我正在尝试让一个网站同时拥有Wix和独立的桌面版本。但是,当这个网站加载到Wix iFrame时,我遇到了Wix版本的问题。
当IF语句为真时,用户应自动被重定向,这意味着如果您在Wix iFrame中访问此网站,则必须执行以“header”开头的代码行,因为IF语句返回true。 / p>
if(isset($_GET[ 'instance' ], $_GET[ 'siteUrl' ], $_GET['locale']))
{
$value = 1;
setcookie("IsWixUser", $value, time()+3600);
header('Location: app.php?show=social_manager');
}
else
{
$value = -1;
setcookie("IsWixUser", $value, time()+3600);
}
当您第一次使用Wix加载我的网站时,情况并非如此,首先不使用任何cookie。使用firebug我可以检查资源并看到cookie“IsWixUser”已正确执行以保存$ 1值,因此setcookie()第一次完美运行,但浏览器只是决定跳过header()函数并且根本不执行。
header()函数仅在刷新整个Wix页面以重新加载iFrame后才起作用,最后header()函数仅在cookie“IsWixUser”过去设置为1时才有效。
这可能只是Drupal的一个问题吗?您在上面看到的那行代码位于Drupal的index.php的顶部。
答案 0 :(得分:2)
您的问题是,一旦发送了任何其他标头(即Cookie),您就无法使用Location标头重定向浏览器。删除cookie设置行,您将被重定向。
干杯
答案 1 :(得分:0)
我不是说这是你问题的答案,但如果你确定你正在做的一切正确,请尝试使用PHP的headers_sent
功能。如果没有,它至少会让你知道发生了什么。
例如:
if (!headers_sent()) {
header('Location: http://www.example.com/');
//exit;
}
尝试将整个网址提供给Location
,例如http://....
。 Drupal以有趣的方式工作,这两件事中的一件可能会有所帮助。