форум вебмастеро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> выполнять на странице клиента.
Заранее спасибо.

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:44857, gzipped size:11393

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]