PHP重定向 - 突破iframe

时间:2013-07-18 23:56:12

标签: php symfony

我知道这是非常基本的,我以前从未有过需要,但我希望PHP重定向能够打破任何iframe(如果适用)。

这可能吗?

我知道PHP会向浏览器发送一个标题,所以它应该是,但我无法在任何地方看到它。

因此,如果我使用此代码,那么它总是更改父代,而不仅仅是任何iframe窗口:

<?php
header('Location: http://domain.com/');
?>

当然这很有效,但我需要从PHP完成它:

<a href="page.php" target="_parent">

我正在使用Symfony2,所以也需要让它在那里工作。

没有JavaScript。仅限PHP(如果可能)。

2 个答案:

答案 0 :(得分:1)

你不能用PHP做 - 如果浏览器试图在一个框架中加载页面,那么发送Location标题也只是在框架中加载新页面。

如果您试图阻止其他人将您的网站放在一个框架中,您必须使用JavaScript来检测它并进行重定向,否则target="_top"是正确的方法。

答案 1 :(得分:0)

从Symfony 2中的控制器返回一些变量(例如reloadMyIframe)然后,当你想重新加载你的iframe时。然后在视图(可能是树枝),放这样的东西

{% if reloadMyIframe == true %}

// Add somethin like this <script...>window.parent.location.href = "http://jourTaret.dmn"

{% endif %}

如果您在Symfony中的视图是在PHP中,则可以使用相同的逻辑,只需使用php if语句键入它。

正如大家们已经说过的那样,没有办法用PHP或者Symfony控制器完成你想要的工作。