Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Iframe不显示站点样式_Php_Iframe - Fatal编程技术网

Php Iframe不显示站点样式

Php Iframe不显示站点样式,php,iframe,Php,Iframe,使用php重定向在(https)站点上服务(http)页面。当iframe加载时,页面的样式不会显示,但会显示站点 PHP重定向 <?php if (isset($_GET['url'])) { $url = $_GET['url']; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); c

使用php重定向在(https)站点上服务(http)页面。当iframe加载时,页面的样式不会显示,但会显示站点

PHP重定向

<?php
if (isset($_GET['url'])) {
  $url = $_GET['url'];
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  echo $data;
}
?> 

iFrame

<iframe src="https://sample/redirect.php?url=http://sample2/form/sampleform.aspx" style="width:100%;height:1200px;" frameborder="0" scrolling="auto" allowfullscreen></iframe>

浏览器检查器显示

ReferenceError: validationSummary is not defined
Loading failed for the <script> with source
ReferenceError:未定义validationSummary
加载具有源的的的失败

这感觉好像问题都围绕着你的设置:

使用php重定向在(https)站点上服务(http)页面

你违反了规矩。检查调试器工具的“网络”选项卡。我敢打赌,您将看到关于通过HTTPS调用不安全资源的错误。(以上讯息:

当HTTP页面加载时,它很可能通过HTTP调用其.css文件,这是违反规则的

更新CSS以通过HTTPS调用。问题可能会消失

另一个注意事项是,您可能有一个css处理器(例如lesscss)也被不安全地加载,因为它是用.net制作的-很可能有一些脚本包含也被不安全地加载。这也会导致您的调用出现问题(您的错误消息:浏览器无法调用框架的错误消息。可能是因为脚本不安全,无法加载脚本,因为HTTPS不允许加载不安全的资源。)

[以下是一个解决方法。我强烈建议您不要这样做。加载页面上的资源与加载页面本身一样。这是一个糟糕的解决方案,但它会起作用。这是一个糟糕的解决方案,是一种糟糕的做法,不安全,这是您永远不应该做的一切……但通过HTTPS提供HTTP页面来绕过系统也是如此。您真的是这样吗ly应该通过HTTPS提供服务;如果让我检查代码,我会扔掉它并说“修复它”。]


若您不能通过HTTPS访问CSS/脚本,那个么PHP可以通过修改PHP提供的代码来提供CSS(使用模式匹配或正则表达式替换PHP版本CSS的地址,然后提供页面)

这并不是那么简单……您还需要修改iframe尝试加载的外部资源的来源-如果它们是使用绝对URL嵌入的,您需要将
http://
替换为
https://
,以便浏览器不会将它们作为混合内容进行阻止,如果是相对URL,则您将你需要自己把它们变成绝对值,否则它们会用你网站的基本地址来解决。