Php 为什么Iframe dosen';我不在雅虎工作

Php 为什么Iframe dosen';我不在雅虎工作,php,html,iframe,frames,x-frame-options,Php,Html,Iframe,Frames,X Frame Options,我发现这不起作用: <iframe src="http://www.yahoo.com"> </iframe> 我读过这篇文章,但我不明白他们所说的“添加”是什么意思: <?php header('X-Frame-Options: GOFORIT'); ?> 我尝试将其添加到html文件的顶部(当然,将其更改为php文件),我的php文件变成: <?php header('X-Frame-Options: GOFORIT'); ?>

我发现这不起作用:

<iframe src="http://www.yahoo.com"> </iframe>

我读过这篇文章,但我不明白他们所说的“添加”是什么意思:

<?php
header('X-Frame-Options: GOFORIT'); 
?>

我尝试将其添加到html文件的顶部(当然,将其更改为php文件),我的php文件变成:

<?php
header('X-Frame-Options: GOFORIT'); 
?>
<iframe src="http://www.yahoo.com"> </iframe>


我在appserv中运行它(使用PHP5.2.6),但它不起作用。有人能解释一下我应该做些什么来克服这个问题吗?

您在跨源资源共享方面遇到了问题。阅读这些文章

至于你的片段

<?php
  header('X-Frame-Options: GOFORIT'); 
?>

需要将添加到正在服务的页面中,而不是添加到请求该页面的页面/代码中,在本例中,该页面/代码将是
yahoo.com
。但是,由于你自己不为雅虎网站提供服务,因此没有办法添加它


然而如果问题是关于你自己的页面,而
yahoo.com
只是一个例子,你可以简单地按照文章中的规定设置正确的HTTP头,那就好了。

一些网站,如谷歌、雅虎,已经为他们的网站禁用了iframe嵌入。若你们想这样做,那个么在服务器端使用curl或file获取html内容并显示出来


检查HTTP响应头X-Frame-Option。我认为,对于雅虎来说,应该是拒绝或相同,这意味着只有雅虎的页面可以在iframe中嵌入其其他页面。你运气不好:yahoo.com不允许你在iframe中嵌入他们的网站。facebook或其他热门网站也不例外

这一限制的原因是

您可以通过检查来自其站点的响应头来验证这一点;它们指定了
X-Frame-Options:SAMEORIGIN
,这意味着只有yahoo.com可以嵌入yahoo.com页面

一些旧的浏览器不会强制执行标头,但所有新浏览器都会。哎呀,没有简单的办法

我能想到的唯一解决方案是实现一个代理脚本,即嵌入一个驻留在服务器上的脚本,为您获取远程内容

例如,您的iframe调用“/my proxy.php?url=”该脚本如下所示:

<?php

header('X-Frame-Options: SAMEORIGIN'); // don't allow other sites to use my proxy
echo file_get_contents($_GET['url']);

在google chorme中添加“忽略X帧标题””插件,然后它就可以正常工作了。

看起来很有效!我将对它进行更多的测试…如果在接下来的测试中没有问题发生,您将获得200个声誉,因为我承诺通过HTTPS向Coursera.org提供服务。您可能只需要启用/安装
php\u openssl
扩展就可以了。仅供参考,这不是一个好的解决方案。好的解决方案是完全避免iFrame:站点有不同的方法来防止iFrame。一些使用头(如yahoo),另一些使用javascript(如stackoverflow)。尽管他们通过使用代理和使用正则表达式重写代码来绕过这些问题,但这是一种非常糟糕的做法。举个简单的例子,我的代理解决方案已经足够好了,但仅此而已。很抱歉,没有更好的解决方案。请随意提出一个新的/更具体的问题。要求每一位网站访问者都这样做是不合理的。