У меня есть следующий код php:
<?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; ?>
который создает следующий html:
<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>
когда я открываю это в google chrome, я получаю 4 кадра с ожидаемым контентом из вышеуказанного URL-адреса. но в первом фрейме, кто src из google, я ничего не получаю; просто пустой кадр. любая идея, что здесь происходит?
благодаря
Google устанавливает заголовок X-Frame-Options
в SAMEORIGIN
, что запрещает сайтам nonGoogle.com встраивать свои страницы. Большинство современных браузеров уважают эту настройку.
Вы можете использовать инструменты разработчика как расширение chrome. Firebug также выполнит аналогичную работу. Нажмите Ctrl + Shift + J с вашей веб-страницы, и хром должен появиться с помощью интерфейса инструмента разработчика.
Отсюда нажмите Консоль и проверьте наличие сообщений об ошибках. Я помню, что сталкивался с аналогичной проблемой с параметрами X-frame Same-Origin, но это было для GDocs, где были проблемы с проверкой подлинности. В моем случае не было простого обходного пути, и я использовал отдельную вкладку.
Этот поток также может помочь: как я могу встроить коллекцию документов Google в iframe?
Вы можете заставить сервер загружать страницу результатов поиска 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!"); #.... ?>