ugrás a tartalomhoz

Probléma távoli fájlok beillesztésekor, include-olásakor

Zsepii · 2003. Dec. 29. (H), 12.56
Valaki segítsen!!!
A köv. problémám van:
Távoli fájlt akarok beilleszteni az "include()" függvénnyel, http protokollon keresztül, de a böngészöben csak a köv. hibaüzenetet kapom:
"Warning: main(): Failed opening 'http://igg.servehttp.com:8180/sites/public/common/test.inc' for inclusion (include_path='.;c:\php4\pear') in F:\HTTP\public\common\test.php on line 16"

PHP 4.3.2-t használok Windows XP SP1 és IIS alatt. (ZoneAlarm telepítve van, de engedélyezve van rajta a PHP és az IIS is; az XP tüzfala nincs bekapcsolva. IIS-ben a 8180-as port engedélyezve van.)
A php.ini-ben az "allow_url_fopen" bejegyzés értéke "On".

Helyi fájlok beillesztése müködik.

Mi a baj?
Vki segítsen!!!

Elöre is köszi!
IGG
 
1

Re: Probléma távoli fájlok beillesztésekor, include-olásako

Scr34m · 2003. Dec. 29. (H), 13.08
http://hu.php.net/include/ eztet nezegessed megen hatha segit

amit szeretnel csinalni annak a hasznalatat en speciel melloznem nem tul biztonsagos, mivan ha nem eri el a servert ha a domain nem megy stb..
2

Re: Probléma távoli fájlok beillesztésekor, include-olásako

Zsepii · 2003. Dec. 29. (H), 13.28
Válasz Scr34m-nek:
De elvileg ennek működnie kellene. Nem?
Te már próbálkoztál vele?
Az elérhetőséggel nem lesz gond, azt tudom ellenőrizni.
3

Re: Probléma távoli fájlok beillesztésekor, include-olásako

Scr34m · 2003. Dec. 29. (H), 15.47
Nem még soha nem próbáltam ki

A manual is emliti milyen feltetelek kellene hogy be tudja illeszteni az oldalt

// Won't work; file.txt wasn't handled by www.example.com as PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';
4

Re: Probléma távoli fájlok beillesztésekor, include-olásako

pp · 2003. Dec. 30. (K), 10.48
mar bocs, de kerdeznem, hogy neked nem jelent meg a kovetkezo hibauzenet?

Warning: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/pp/public_html/proba/a.php on line 2

mert en kiprobaltam, es nekem ez is megjelent. (ha igen akkor bizony ezt is be kellett volna masolnod ide.)

Nos a lenyeg, hogy az a szerver csak a 8180-as porton van nyitva, sem a ping, sem a http port nincs rajta nyitva. Nyilvan a php megprobalja valahogyan leelenorizni a port nelkul. Mivel nem kap valaszt, ezert meg se probalja megnyitni a fajlt. Probalkozzal mas uton modon eljarni.
pl:

<?
$fp = fsockopen ("igg.servehttp.com", 8180, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs ($fp, "GET / HTTP/1.0\r\nHost: igg.servehttp.com:8180/sites/public/common/test.inc\r\n\r\n");
while (!feof($fp)) {
echo fgets ($fp,128);
}
fclose ($fp);
}
?>
kiprobaltam, nekem mukodott. Nyilvan az echo helyett mondjuk a $phpfile.=fgets($fp,128); hasznalata eseten a program vegen kiadhatod az eval($phpfile) utasitast, es akkor ugyan ott vagy ahol az include-al lennel.

sok sikert.

pp
(remelem tudod, hogy az igy megnyitott php fajlt, ha a tavoli szerveren be van allitva, akkor azt az ottani php ertelmezo eloszor ertelmezi es csak azutan adja at, es nem az amelyik letolti. persze ezt is meg lehet hack-elni, de most mar te is dolgozz egy keveset;))
5

Re: Probléma távoli fájlok beillesztésekor, include-olásako

Zsepii · 2003. Dec. 30. (K), 11.10
Válasz pp-nek:

Sajna a te általad említett üzenetet nem írja ki, a 8180-as portom pedig nyitva van, mert el tudom rajta érni a szervert (le tudok rajta hívni honlapokat), sőt bármilyan tűzfalteszt is ezt mondja.

Amúgy a dolog már nálam régen egyszer már működött, csak nem emlékszem, hogy csináltam meg.
6

Re: Probléma távoli fájlok beillesztésekor, include-olásako

pp · 2003. Dec. 30. (K), 16.18
8180-as portom pedig nyitva van


ok, akkor nem voltam ertheto az elobb....
Azt tudom, hogy a 8180-as protod nyitva van.
Amit irtam megoldas az is hibas, de mivel fogalmam se volt, hogy mit is kell kapni ezert talan ertheto.
Szoval megegyszer nekifutottam a problemadnak, es arra jutottam, hogy szarul van beallitva a szervered ;)).
Nem lehet pingetni, nem lehet a 80-as porton rakapcsolodni, es valszeg a dns beallitasok korul is problemak lesznek. Nem tudom, hogy hogyan mukodik a php fsockopen, de ha nem domain nevet, hanem ip cimet adsz meg, akkor mar le tudok tolteni valamit a szerverool, tudom, hogy ez meg nem a teljes megoldas, de hat talan kozelebb visz hozza.
szoval megegyszer:

<?
$fp = fsockopen ("62.68.171.18", 8180, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs ($fp, "GET /sites/public/common/test.inc HTTP/1.0\r\nHost: igg.servehttp.com\r\n\r\n");
while (!feof($fp)) {
echo ( fgets ($fp,128));
}
fclose ($fp);
}
?>
szoval ez mar ad vissza valmi, de nem a kert oldalt. Mier? Ezt most neked nem tudom megmondani, mert nem vagyok bongeszo program, es nem a http 1.0 nyelvet beszelem. Ha gondolod nezz utana http://www.w3.org/Protocols/rfc2616/rfc2616.html

Szoval szerintem a szerver dns beallitasai korul keresd a hibat, vagy old meg igy.

pp