форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Вставка удаленного кода в сайты на Alfa***** |
| Автор | Сообщение |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 08:32 Столкнулся с такой особенностью хостинга - это невозможность вставки в свои скрипты удаленного кода методом include("http:// Есть ли альтернативные решения (кроме фреймов конечно же)? Заранее примного благодарен |
| Nightfly Участник 256 |
# Дата: 13 Ноя 2005 08:34 сокеты запрещены понятно по каким соображениям, могу разве что посоветовать отрыть RSS агрегатор на жабоскрипте... |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 08:44 Столкнулся с такой особенностью хостинга - это невозможность вставки в свои скрипты удаленного кода методом Такое нигде нельзя сделать. Максимум - взять «удалённый вывод», через fsockopen(), или fopen. |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 08:48 white_pawn, Nightfly так запрещены или нет? white_pawn и можно бы сюда кусочек кода, для примера... |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 09:09 ntking http://coobee.alfaspace.net/111.php Вот пример - вот php код: <?php $fp = fsockopen ("alfaspace.net", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br> "; } else { fputs ($fp, "GET / HTTP/1.0 Host: alfaspace.net "); while (!feof($fp)) { echo fgets ($fp,128); } fclose ($fp); } ?> |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 09:13 ° Поправил: Константин ntking Сокеты запрещены для деструктивных целей
А по поводу твоей проблемы: <? $sock=fsockopen("$host",$port); fputs($sock,"GET /файл HTTP/1.0\nHost: $host\n\n") $buf=""; while (!(strpos($buf,"\n")>0) $buf.=fgets($sock,1024); $buf=""; while (!feof($sock)) $buf.=fread($sock,8192); fclose($sock); echo eval($buf); ?> |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 09:15 while (!feof($fp)) { echo fgets ($fp,128); } Ага - давай выведем вместе с хттп заголовком Не совсем точно. |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 09:36 ° Поправил: Андрей Ага - давай выведем вместе с хттп заголовком Не совсем точно. Ой, я просто выдернул из того скрипта где нужна была шапка. ![]() |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 11:09 ° Поправил: ntking Вот пример кода, который не хочет работает: $host="другой_хост.com"; $file="file.php"; $sock=fsockopen("$host",80); fputs($sock,"GET /$file HTTP/1.0\nHost: $host\n\n"); // пропущено ";" $buf=""; while (!strpos($buf,"\n")>0) $buf.=fgets($sock,1024); // Недостающая или лишняя скобка, возможно после $buf точка не нужна $buf=""; while (!feof($sock)) $buf.=fread($sock,8192); fclose("sock"); echo eval($buf); Deflector, что-то нехочет работать, в чем моя ошибка? white_pawn твой скрипт тоже не смог применить... пишет: Success (0) |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 11:38 ntking $host="другой_хост.com"; В другой хост вида http://blablabla.com/? Если да, то замени просто на blablabla.com... Success (0) Ты заменил: fputs ($fp, "GET / HTTP/1.0 Host: alfaspace.net "); На fputs ($fp, "GET / HTTP/1.0 Host: blablabla.zone "); ? |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 12:22 Уряяя!!! вот так заработало: $file='file.php'; $host="sdomain.com"; $fp = fsockopen ($host, 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br> "; } else { fputs ($fp, "GET /$file HTTP/1.0 Host: $host "); while (!feof($fp)) { echo fgets ($fp,128); } fclose ($fp); } только как заметил Deflector, выводится заголовок: HTTP/1.1 200 OK Date: Sun, 13 Nov 2005 17:19:43 GMT Server: Apache/1.3.33 (Unix) PHP/4.4.0 mod_ssl/2.8.22 OpenSSL/0.9.7g X-Powered-By: PHP/4.4.0 Connection: close Content-Type: text/html Как от него избавиться? И огромное спасибо за скриптик... ![]() |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 12:29 Вот так только что проверил: <? $host="memorycrystals.ru"; $file="/DefMailSystem/Def_uploader_form.html"; $port=80; $sock=fsockopen($host,$port); fputs($sock,"GET $file HTTP/1.0\nHost: $host\n\n"); $buf=""; while (!(strpos($buf,"\r\n\r\n")>0)) {$buf.=fgets($sock,1024);} $buf=""; while (!feof($sock)) {$buf.=fread($sock,8192);} fclose($sock); echo($buf); ?> работает. Однако, если ты инклюдишь именно скрипт, а не результат его вывода скрипт, то eval в конце нужен |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 13:15 Deflector вот что мне выдал твой скрипт: Bad Request Your browser sent a request that this server could not understand. Invalid URI in request GET index.php HTTP/1.0 Ну и в конце информация об аппаче сервера. Если подставить в конце "echo eval($buf); " - вообще ничего не выводит. |
| Troopers Участник 100 |
# Дата: 13 Ноя 2005 13:16 Deflector Вот так только что проверил: А с XML такое прокатит? Я хотел выводить на своём сайте новостные ленты с других сайтов, и ничего не получается. Просто, честно говоря, я не в курсе возможно ли читать удалённый XML через сокеты. |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:21 ntking defwww2mail.alfaspace.net/fs.php - там лежит этот скрипт можешь проверить - работает ![]() |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:24 Про eval я уже сказал - его надо применять, если тот скрипт, который ты запрашиваешь удаленно выводит правильные данные. например <?echo('<?echo("some text");?>');?> - запроси такой скрипт и в $buf будет лежать "<?echo("some text");?>" - к нему eval применим! Troopers возможно - почему же нет? |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 13:24 ntking Я дал этот скрипт более для ознакомления, чем для прямого использования...
Deflector Чёто я так и не понял... Вот тут: $buf=""; - Очищаем. while (!(strpos($buf,"\r\n\r\n")>0)) - Пока в $buf не будет два переноса. {$buf.=fgets($sock,1024);} - Берем туда вывод. $buf=""; - Снова очищаем while (!feof($sock)) - Пока не кончиться {$buf.=fread($sock,8192);} - всасываем всё... Я не понял зачем strpos... Обясни плз. ![]() |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:25 ° Поправил: Константин Bad Request Your browser sent a request that this server could not understand. Invalid URI in request GET index.php HTTP/1.0 Ты видимо первый из слешей забыл при запросе бывает.
например в $file записал "scr.php" вместо "/scr.php" |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 13:26 ntking Invalid URI in request GET index.php HTTP/1.0 Попробуй так: GET /index.php HTTP/1.0 |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:26 white_pawn когда там будет 2 переноса - кончится хттп заголовок в ответе сервера ![]() |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 13:28 Deflector Берём без шапки, очищаем, берём с шапкой... Я об этом. ![]() |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:32 white_pawn В смысле???? так как я написал, мы принимаем сначала шапку (заголовок хттп ответа сервера), затем сбрасывае буфер, чтобы о ней забыть, а дальше идет сам файл, который мы запрашивали и затем выводим его через echo
Ты вообще со стандартом http 1.0 знаком? |
| Андрей Алексеевич 2125 |
# Дата: 13 Ноя 2005 13:35 Ты вообще со стандартом http 1.0 знаком? Блин, я просто сглючил. ![]() |
| Константин TorrentMaster 3449 |
# Дата: 13 Ноя 2005 13:39 white_pawn Блин, я просто сглючил. бываеть ![]() |
| ntking Участник 252 |
# Дата: 13 Ноя 2005 13:59 Deflector Ты видимо первый из слешей забыл при запросе бывает. Да, действительно проблема была в этом... Спасибо всем за помощь, все работает как надо! Вот работа этого скрипта. ![]() |
| ntking Участник 252 |
# Дата: 15 Ноя 2005 09:20 Deflector, ты случаем не знаешь, как избавиться от этого? http://vdforum.alfaspace.net/links.php Смотри тег <title>... Подставлял echo eval($buf);, пишет парсе ерор '<'... код: $file='/cy.txt'; $host="ic.alfamoon.com"; $port=80; $sock=fsockopen($host,$port); fputs($sock,"GET $file HTTP/1.0\nHost: $host\n\n"); $buf=""; while (!(strpos($buf,"\r\n\r\n")>0)) {$buf.=fgets($sock,1024);} $buf=""; while (!feof($sock)) {$buf.=fread($sock,8192);} fclose($sock); echo($buf); Или, если можно, то первые несколько строк при считывании пропускать, чтоб <title><? php code ?></title> выполнять на странице клиента. Заранее спасибо. |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:44857, gzipped size:11393 |