Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wykonywanie skryptu w skrypcie
Forum PHP.pl > Forum > PHP
bartu$
Potrzebuje wywolac skrypt przechowywany na innym serwerze. I dzialanie mojego skryptu uzaleznic od rezultatow tamtego. Czy jest to mozliwe? Jak ktoś wie niech pisze. Thx
BzikOS
Popróbuj z [manual:8c7ccc9d21]include[/manual:8c7ccc9d21].

Cytat
Jeśli "URL fopen wrappers" są włączone w php (takie jest domyślne ustawienie) można podać nazwę pliku do wczytania używając adresu URL (przez protokół HTTP lub innym obsługiwanym sposobem - zajrzyj do Dodatek I aby zapoznać się z listą obsługiwanych protokołów), zamiast podawać ścieżkę lokalną. Jeśli podany w adresie serwer interpretuje plik docelowy jako kod php, można do tego skryptu przekazać zmienne w taki sam sposób jak przy metodzie GET protokołu HTTP. Ściśle mówiąc, nie jest to to samo, co wczytywanie pliku lokalnego; jest to wykonanie pliku na zdalnym serwerze i wklejenie rezultatu jego działania do skryptu wywołującego. W tym przypadku, rzecz jasna, zasięg globalny zmiennych nie obejmuje pliku wczytywanego tą metodą.
Cudi
Tak, najlepiej dać:
[php:1:2876410748]<pre>
<?php
include 'http://forum.php.pl/config.php';

foreach( get_defined_vars() as $key => $value )
{
echo '<b>$' . $key . '</b> = ' . ( is_array( $value ) ? ( empty( $value ) ? 'Array()' : trim( print_r( $value, TRUE ) ) ) : $value ) . '<br />';
}
?>
</pre>[/php:1:2876410748]
Brawo, własnie zhackowałeś forum php.pl! smile.gif
Byłoby strasznym zaniedbaniem gdyby admin serwera dopóścił żeby pliki na nim leżące mogłby być includowane ze zdalnych maszyn. Od tego serwera dostniaesz tylko takie info:
[php:1:2876410748]<?php
$http_response_header = Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Thu, 08 Jan 2004 18:18:48 GMT
[2] => Server: Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6mdk) sxnet/1.2.4 mod_ssl/2.8.10 OpenSSL/0.9.6g php/4.2.3
[3] => X-Powered-By: php/4.2.3
[4] => Connection: close
[5] => Content-Type: text/html; charset=iso-8859-2
)
?>[/php:1:2876410748]
I myśle że na każdym innym będzie to samo.
halfik
mozna za pomoca socketow polaczyc sie z wybranmy hostem: skrypt sie wykona, wiec teraz za pomoca wyrazen regularnych wystarczy przeszukac strone pod katem tego co Ci tam jest potrzebne do dzialania Twojego skryptu.
bartu$
dziekuje ze zechcieliscie odpowiedziec. dowiedzialem sie ze sa mozliwosci zrobienia tego o czym mysle.

- A propo : zrobilem to co podal Cudi i wyszlo mi takie cos
[php:1:0d861b4cce]<?php
$http_response_header = Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: Microsoft-IIS/4.0
[2] => Content-Location: http://www.aaaaa.pl/index.htm
[3] => Date: Fri, 09 Jan 2004 16:39:35 GMT
[4] => Content-Type: text/html
[5] => Accept-Ranges: bytes
[6] => Last-Modified: Thu, 03 Jan 2002 21:36:06 GMT
[7] => ETag: "0e75da69e94c11:513ef6"
[8] => Content-Length: 8130
)

?>[/php:1:0d861b4cce]
Czy to oznacza ze serwer jest zle zabezpieczony. Jesli tak to co moze zlosliwa osoba zrobic korzystajac z luki? Pytam bo jest to serwer gdzie mam komercyjne konto www.

- odnosnie korzystanie z socketow: czy sa gdzie w sieci proste przyklady, jakis maly tutorialik ? smile.gif
Cudi
Niekoniecznie jest źle zabepiczieczony, chodzi o to że na tym forum oprócz zmiennych predefiniowanych otwrzymalem tylko $http_response_header, a z zamierzenia powinienem otrzymac jeszcze zmienne z userem i hasłem do bazy danych. Jednak tych juz nie dostałem, serwer nie pozwolił na to. Musisz sprawdzić czy oprócz zmiennej $http_response_header i predefiniowanych dostajesz coś jeszcze.

Jeśli chodzi o pobranie nie co zwróci serwer do przeglądarki, to nie muszą to być koniecznie socety, można sporóbować skorzystać z [manual:d91bf4f651]fopen()[/manual:d91bf4f651]; Jeśli to nie zadziała, to wtedy kombinujemy z [manual:d91bf4f651]fsockopen()[/manual:d91bf4f651].
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.