Вопрос по php, html – Настройка HTML Frame src на google.com; не работает

0

у меня есть следующий код php:

<code><?php
require_once("support.php");

$query = $_POST["search"];

$google = "http://www.google.com/search?q=" . $query;
$bing = "http://www.bing.com/search?q=" . $query;
$yahoo ="http://search.yahoo.com/search?p=" . $query;
$ask = "http://www.ask.com/web?q=" . $query;

$body= "<html><head>";
$body .= "<script src=\"scripts.js\"></script>";
$body .= "</head>";
$body .= "<frameset rows=\"50%,50%\" cols=\"50%,50%\" >";
$body .= "<frame src=\"$google\" />";
$body .= "<frame src=\"$bing\" />";
$body .= "<frame src=\"$yahoo\" />";
$body .= "<frame src=\"$ask\" />";
$body .= "</frameset>";

$body .= "</html>";

echo $body;
?>
</code>

который производит следующий HTML:

<code><html>
  <head>
      <script src="scripts.js"></script>
  </head>
  <frameset rows="50%,50%" cols="50%,50%" >
       <frame src="http://www.google.com/search?q=adf" />
       <frame src="http://www.bing.com/search?q=adf" />
       <frame src="http://search.yahoo.com/search?p=adf" />
       <frame src="http://www.ask.com/web?q=adf" />
  </frameset>
</html>
</code>

Когда я открываю это в Google Chrome, я получаю 4 фрейма с ожидаемым контентом из приведенных выше URL. но в первом кадре, который src от Google, я ничего не получаю; просто пустая рамка. Есть идеи, что здесь происходит?

Спасибо

Google не любит, когда их контент внедряется в другую страницу? nickb

Ваш Ответ

3   ответа
0

Вы можете использовать инструменты разработчика в качестве расширения Chrome. Firebug также сделает аналогичную работу. Нажмите Ctrl + Shift + J со своей веб-страницы, и Chrome должен появиться с интерфейсом инструмента разработчика.

Отсюда нажмите Консоль и проверьте наличие сообщений об ошибках. Я помню, как сталкивался с подобной проблемой с параметрами x-frame Same-Origin - но это было для GDocs, где были проблемы с аутентификацией. В моем случае не было простого обходного пути, и я использовал отдельную вкладку.

Эта тема также может помочь: Как я могу встроить коллекцию Google Docs в Iframe?

0

Вы можете заставить сервер загружать страницу результатов поиска Google и подавать ее в свой фрейм, используя curl.

<?php 
function getHtml($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);    
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

$google = getHtml("https://encrypted.google.com/search?q=".$query) or die("dead!");
#....
?>
4

Google устанавливает ихX-Frame-Options заголовок кSAMEORIGIN, который запрещает сторонним сайтам встраивать свои страницы. Большинство современных браузеров уважают этот параметр.

Похожие вопросы