Strona 1 z 1

[PHP] problem ze skryptem

PostNapisane: Wt maja 22, 07 18:43
przez marek
pewien skrypt działa u mnie na lokalnym serwerze a nie działa po wysłaniu na serwer ugu.pl

oto kod:
Kod: Zaznacz cały
<?php
$adres='http://pogoda.interia.pl/miasta?id=11699';
$strona=file_get_contents($adres);
$adres=substr($adres, 0, 24);

$temperatura_odleglosc=strpos($strona, '<span class="tex2B"  style="font-size:14px;">');
$temperatura=substr($strona, $temperatura_odleglosc, 47);

$obrazek_odleglosc=strpos($strona, '/img/ikony/');
$obrazek_link=$adres.substr($strona, $obrazek_odleglosc, 23);
$obrazek='<img src="'.$obrazek_link.'" alt="Pogoda" />';

$tresc.='Temperatura: '.$temperatura.'°C<br />';
$tresc.=$obrazek;
?>


wyświetla się ostrzeżenie:
Kod: Zaznacz cały
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /virtual/m/a/marek.ugu.pl/pogoda.php on line 3

Warning: file_get_contents(http://pogoda.interia.pl/miasta?id=11699) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /virtual/m/a/marek.ugu.pl/pogoda.php on line 3


Czy ktoś wie o co może chodzić?

PostNapisane: Wt maja 22, 07 19:34
przez ziommek
No ja tam nie wiem co jest nie tak ale też mi podobny błąd mi wyskoczył przy jednym skrypcie...

PostNapisane: Wt maja 22, 07 19:51
przez Neo
Z tego co widzę, i przeczuwam może być błąd w tej linijce:
Kod: Zaznacz cały
$strona=file_get_contents($adres);
$adres=substr($adres, 0, 24);

PostNapisane: Wt maja 22, 07 22:12
przez marek
Neo napisał(a):Z tego co widzę, i przeczuwam może być błąd w tej linijce:
Kod: Zaznacz cały
$strona=file_get_contents($adres);
$adres=substr($adres, 0, 24);


też wydaje mi się że błąd generuje ta linijka ale wina prawdzopodobnie leży po stronie serwera

obie funkcje są użyte zgodnie z prototypem w manualu
http://pl2.php.net/file_get_contents
http://pl2.php.net/manual/pl/function.substr.php

co więcej działają lokalnie(Apache 2.055/PHP 5.1.4) więc błąd w kodzie wykluczam, wydaje mi się że jest błąd albo ograniczenie w konfiguracji serwera lub używana jest wcześniejsza wersja Apacha lub PHP

PostNapisane: Wt maja 22, 07 22:36
przez ugu
Nie ma możliwości ładowania zdalnych plików. Blokada jest włączona ze względów bezpieczeństwa.

Jeżeli przedstawicie dobre argumenty za włączeniem tej funkcji to rozważę taką możliwość.

PostNapisane: Śr maja 23, 07 09:35
przez marek
W sumie to na bezpieczeństwie serwerów w ogóle się nie znam :mrgreen: , więc żadnego argumentu(oprócz tego, że czasem się to przydaje) nie podam. Może mógłbyś podać jakiegoś linka do artkułu gdzie są zagrożenia wnikające z ładowania zewnętrznych plików?

PostNapisane: Śr maja 23, 07 09:42
przez ugu
Nie jestem w stanie podać linku ponieważ nigdy nie spotkałem sie z takim artykułem.
Wiem to z doświadczenia, czyli jak potrafię sam wykorzystać taką funkcję to inni tez potrafią.
Pracuję nad kilkoma łatkami dla php aby była możliwość włączenia tej funkcji, jednak trochę to potrwa, ma to dość niski priorytet.

PostNapisane: Cz maja 24, 07 16:14
przez Mattrick
Na przykład
file_get_contents(../../password.txt);

Oczywiście to tylko przykład, ale da się łatwo znaleźć plik konfiguracyjny i tą funkcją wyświetlić jego zawartość (innymi sposobami dostaniesz error bodaj 403).

PostNapisane: Cz maja 24, 07 23:05
przez marek
Mattrick napisał(a):Na przykład
file_get_contents(../../password.txt);


niezłe, muszę gdzieś to wyprobować :twisted: