2010-09-23 10 views
5

Zobaczmy, czy wyjaśnię. Mam stary zestaw skryptów, które działają dobrze na PHP4 i lepiej nie dławić em. Muszę zintegrować nową funkcjonalność zaimplementowaną na PHP5, potrzebuję tylko wywołać skrypt na nowej aplikacji ze starego.PHP wywoływanie innego skryptu, ale przez http (izolowanie ich).

Aby nie musieć dotykać starych rzeczy, myślę, że w jakiś sposób "krewni zdalnie" przywołują nowe, muszą tylko przekazać dane $ _REQUEST []. Nie mogę tego uwzględnić, ponieważ wymagałoby to migracji do innej wersji PHP (i niektórych konfliktów nazw). Nie potrzebuję żadnego wyjścia z nowego.

Jaki byłby czystszy sposób "wywołania" tego skryptu przekazującego parametry, fopen ("http://theserver.com/thescript.php" ...), a następnie przekazanie wszystkich niezbędnych nagłówków do przekazania parametrów? czy jest coś bardziej bezpośredniego?

Dzięki!

Odpowiedz

3

Jeśli potrzebujesz przekazać dane POST, możesz użyć cURL; w przeciwnym razie możesz po prostu zrobić file_get_contents('http://example.com/yourscript.php?param1=x&param2=y&param3=...');, a HTTP wrapper zrobi to za Ciebie (najprostszy sposób).

+0

Świetne, naprawdę proste. Będę musiał pomyśleć o możliwych problemach z bezpieczeństwem, ale myślę, że w tym konkretnym przypadku nie będzie to zbyt skomplikowane. dzięki! – Joan

3

Dasz sobie z tego koszmary nocne.

Ale jeśli naprawdę musisz to zrobić, nie będziesz mógł polegać na fopen. Polecam używanie cURL, jak sugeruje Piskvor.

Ale proszę, upewnij się, że sprawdzasz i wymykasz się z danych, które przesyłasz poprawnie, lub jesteś w świecie cierpienia - fakt, że wysyłasz prośbę o cURL do drugiej strony system oznacza, że ​​teoretycznie każdy może zrobić dokładnie to samo.

To zdecydowanie nie jest długoterminowe rozwiązanie, radziłbym przepisać stare części jako priorytet.

+0

Masz rację z problemem bezpieczeństwa ... Myślę, że zrobię to, co Piskvor sugeruje, przekazując żądanie jako parametry, ale najpierw będę badał możliwe problemy bezpieczeństwa. Dzięki! – Joan

0

Po rozważeniu tego, co zasugerowałeś w poprzednich odpowiedziach i biorąc pod uwagę bezpieczeństwo, pomyślałem coś: Jeśli oba skrypty znajdują się na tym samym serwerze, "wywoływane" powinno być na tym samym IP niż wywołujący, więc jeśli ips różnią się wywoływane nie powinno się uruchamiać . Czy to dobry pomysł?

Powiązane problemy