Jak podpiac plik php z innego serwera?

0

Witam.
Mam dwa serwery

  1. http://a.pl
  2. http://b.pl

Teraz robie strone na serwerze a.pl
index.php i w indexie wpisuje

include_once('http://b.pl/skrypt.php');

U mnie nie wysweitla tego pliku.
Da sie jakos umozliwic podczepianie skryptow?

0

Ale ale..
a) Chcesz odpalić na serwerze A skrypt, który znajduje się na serwerze B
b) Chcesz wstawić wynik działania skryptu z serwera B tak aby znajdował się na stronie A?

Oba wymagają ustawienia allow_url_fopen na On. Opcja a) wymaga dodatkowo aby serwer B nie wykonywał skryptu po swojej stronie a jedynie serwował jego treść jako zwykły plik tekstowy.

0

Nie widzę sensu takiego rozwiązania, no ale... Na serwerze #B zrób sobie plik:
noparse.php

if ($_GET['password'] != 'costam') exit('Invalid password.');
echo(file_get_contents($_GET['file']));

Potem dajesz:

<?php
include_once('http://b.pl/noparse.php?file=skrypt.php&password=costam');
?>

Jeśli nie masz dostępu do serwera #B to możesz pomarzyć o zobaczeniu kodu PHP jakiegokolwiek pliku na tym serwerze.

0

Potrzebna mi wersja B chce pobrac jakby zawartosc skryptu z serwera B
i dopiero po INCLUDE zeby ten kod sie wykonal na moim serwerze.
to mam uzyc FOPEN ?

0

No to zrób tak jak napisałem w poście wyżej. Zadziała jak masz w php.ini allow_url_fopen ustawione na 1.

0

NIestety z kodu powyzej nie dziala bo jesli wstawie ten link do adresu to dziala ale jesli uzyje INCLUDE to nie dziala sprawdze czy mam allow_url:
edit: ma tak
DIrective Local Master
allow_url_fopenOn
allow_url_includeOff
Czyli musze uzyc zdalengo fopen chyba :(

0

No to ustaw include na On:On.

0

Obczaj tak:

na B ten skrypt, ktory ma byc wykonany na A zapisz do pliku txt, zeby sie nie wykonal.

$file = fopen("http://B.pl/skrypt.txt", "r");
$skrypt = fread($file, filesize("http://B.pl/skrypt.txt"));

eval($skrypt);

Funkcja eval się nigdy zbyt wiele nie bawiłem, do prostych skryptów to się pewnie nadaje, ale jeślibyś chciał tak sobie importować np. Zend Framework, to raczej nie zadziała ;-).

0

zeby sie nie wykonal

Toż po to jest to:

if ($_GET['password'] != 'costam') exit('Invalid password.');
echo(file_get_contents($_GET['file']));

Poza tym bezpieczniej niż w .txt.

I czemu eval() nie wywoła skomplikowanych skryptów? Imo to działa tak jak include - wrzuca w dane miejsce skryptu podany kod.

0
Demonical Monk napisał(a)

Toż po to jest to:

if ($_GET['password'] != 'costam') exit('Invalid password.');
echo(file_get_contents($_GET['file']));

Poza tym bezpieczniej niż w .txt.

Pardon, nie przyjrzałem się [soczek] . A co do eval, jeśli będzie działało to super, ale mam przypuszczenia że ta funkcja jest skaszaniona ;-). Ot, taka intuicja.

0

Zawsze można zapisać jako plik i includować.

0

EDIT:
Okazuje sie ze tak:
Na serwerze A mam parametry na OFF w include i w fopen i nie moge zmienic bo to admin sie nie zgodzi
Na serwerze B mam parametry OFF na include i ON fopen
Wiec zamienilem pliki i dziala ale:

  1. Funkcja file_get_contents wykonuje skrypt po stronie serwera na ktorym jest ten plik i przesyla wykony juz
  2. Funkcja eval($skrypt); zbiera kod i wykonuje juz na serwerze wlasciwym i o to chodzilo w teorii

Dziekuje za pomoc heh musze z adminem pogadac czy da sie to wlaczyc
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1