2013-12-20 1 views
0

Я хочу, чтобы на моем веб-сайте отображалось окно поиска на моем собственном сайте в iframe на моем сайте (XHTML 1.0 Strict).Как отобразить вывод формы в iframe?

Мне не удалось выяснить, как использовать Google CSE, поэтому я пытаюсь сворачивать свои собственные.

У меня есть тестовый код:

<iframe name='test' id='test'></iframe> 

<form action='http://cnn.com' target='test'> 
    <input type="text" name="q" size="20" maxlength="255" /> 
    <input type='submit' value="Search" /> 
</form> 

<form action="http://www.google.com/search"> 
    <input type="text" name="q" size="20" maxlength="255" /> 
    <input type="hidden" name="sitesearch" value="mysite.com" /> 
    <input type="submit" value="Search" /> 
</form> 

<form action="http://www.google.com/search" target='test'> 
    <input type="text" name="q" size="20" maxlength="255" /> 
    <input type="hidden" name="sitesearch" value="mysite.com" /> 
    <input type="submit" value="Search" /> 
</form> 

Как и ожидалось, первая форма выше загружает страницу CNN в IFrame «тест».

Вторая форма отлично работает, за исключением того, что она отображает результат на новой странице (а не внутри iframe).

Третья форма (то же, что и вторая, за исключением атрибута «цель») ничего не делает, когда кнопка отправки нажата.

Что я делаю неправильно? И как я могу сделать W3C Validator счастливым с этим?


Edit: Я думаю, что я почти получилось:

<iframe name='test' id='test'></iframe> 

<form method='post' action="test.php" target='test'> 
    <input type="text" name="q" size="20" maxlength="255" /> 
    <input type="submit" value="Search" /> 
</form> 

Тогда это в test.php:

<?php 
    $query = $_POST["q"]; 
    print file_get_contents("http://www.google.com/search?q=$query&sitesearch=mysite.com"); 
?> 

Я думаю, что это синтаксически правильно - единственная проблема, которая что Google возвращает ошибку 503 (я думаю, что она не хочет делать это, не заплатив, или что-то еще).

ответ

1
<?php 
    $useragent = "Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/870; U; id) Presto/2.4.15"; 
    $ch = curl_init (""); 
    curl_setopt ($ch, CURLOPT_URL, "http://www.google.com/search?q=".urlencode($_GET["q"])."&btnG=Search"); 
    curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    echo $output = curl_exec ($ch); 
    curl_close($ch);  
?> 

Это PHP-код, который будет работать в файле test.php но

Помните ЭТО ПРОТИВ GOOGLE TOS, пожалуйста, не ругайте его

Смежные вопросы