Загрузить страницу на странице - PullRequest
2 голосов
/ 19 февраля 2009

Я новичок в PHP и Javascript ..

Я нашел ссылку с http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2

Внутри него есть код:

function addPanel(location)
{
 tabpanel.add({
       autoLoad: {url: location},
       title: 'More Information...',
       closable:true,
       autoScroll:true
 }).show();
}

как использовать:

<a href="javascript:void(0);"
   onclick="addPanel('loadpage.php?a=http://www.google.com')">
   head over to Google
</a>

Я хочу спросить ... что это за код для loadpage.php?

Ответы [ 2 ]

1 голос
/ 19 февраля 2009

Страница PHP не отображает содержимое google.com, как предлагается в другом ответе. Он выводит iframe, который указывает на Google:

<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe>
0 голосов
/ 19 февраля 2009

Похоже, loadpage.php может использоваться для вывода содержимого www.google.com, используя file_get_contents .

loadpage.php

<?php
    // Simplified output - should sanitise $_REQUEST params etc first..
    echo file_get_contents($_REQUEST['a']);
?>

loadpage эффективно действует как прокси, позволяя вашему javascript вызывать страницы, которые находятся не в вашем собственном домене.

Как отмечает @annakata в комментариях, приведенный выше код непристойно опасен как есть. Код является иллюстрацией основной идеи, лежащей в основе файла прокси-сервера - в процессе работы этот файл должен был бы обеспечить очистку параметров $_REQUEST, например, принимать значения только из белого списка.

Политика с тем же происхождением - это элемент безопасности javascript, который не позволяет вам перетаскивать контент из-за пределов вашего домена на вашу страницу с помощью javascript.

Некоторые сайты обходят это, вызывая прокси-страницу на своем собственном сервере (loadpage в данном случае), который фактически просто распечатывает содержимое целевого URL. Поскольку эта прокси-страница находится на вашем сервере, это обходит ту же проблему безопасности источника и все еще делает доступным содержимое страницы из другого домена - здесь www.google.com

<ч /> К сожалению, я немного глупо не RTFA, а просто код в вопросе и предположил, что он может делать. @ andynormancx прав в своем ответе относительно того, что на самом деле делает страница, на которую указывает ссылка в q.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...