Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie wyników z pliku innego serwera
Forum PHP.pl > Forum > PHP
servs
Witam!

Mam kilka skryptów na kilku serwerach.

serwer1/make.php
  1. //Pobieranie danych z pliku drugiego serwera
  2.  
  3. //Dalsze działanie na pobranej danej.
  4.  
  5. //Pobieranie danych z pliku trzeciego serwera
  6.  
  7. //Dalsze działanie na pobranej danej.
  8. ...


serwer2/send.php
  1. $sda = 'Dane wyciągnięte z lokalnej bazy'


serwer3/send.php
  1. $sda = 'Dane wyciągnięte z lokalnej bazy'


Czyli: Większość akcji ma się odgrywać na serwerze pierwszym, gdzie pobierane są dane z pliku (wykonawczego) na innym serwerze, gdzie pobierane są dane z bazy danych i wysyłane spowrotem do skryptu na serwerze 1, następnie na serwerze 1 dokonywane są operacje na tych danych, po operacjach akcja się powtarza, tyle, że na serwerze 3.

Mam nadzieję, że wystarczająco wytłumaczyłem na czym rzecz powinna polegać.

Problem w tym, że nie wiem jak to rozwiązać. Mógłbym to zrobić za pomocą przekierowań i formularzy <form>, ale problem w tym, że w czasie akcji nie mogę wychodzić z pliku serwer1/make.php.

Preferowana przeze mnie forma wysyłania danych to POST, bo jest chyba najbezpieczniejsza.

Proszę o pomoc.

Pozdrawiam!
pionas
myślę że tutaj przydane może być curlsmile.gif
servs
Cytat(pionas @ 13.11.2009, 21:50:42 ) *
myślę że tutaj przydane może być curlsmile.gif


A więc nie warto było ograniczać się do gołego php za młodu winksmiley.jpg

Cóż. cURL rzeczywiście jest ciekawy, jednak z tego co patrzyłem (po tutorialach) to znalazłem takie coś:

  1. $postFields['zwykły_tekst'] = 'tekst1';
  2. $postFields['e-mail'] = 'example@example.com';
  3. $postFields['non-alfanum'] = '~!@#$%^&*()_+';
  4. $ch = curl_init('http://localhost/curl/site.php');
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  6. curl_exec($ch);
  7. curl_close($ch);


Nie da się ukryć, że jest to ciekawe rozwiązanie, jednak jeśli chciałbym to wdrożyć do własnego projektu, to musiałbym wywoływać najpierw to z poziomu server 2, 3 itd. A przypominam, że wszystko musi się dziać na server 1, gdzie jest główny plik operacyjny.
Może i znalazłem nie to co trzeba - przyznam, że wcześniej cURLem bawiłem się bardzo mało, więc mogę mieć braki wiedzy, ale wnioskuję, że po to jest forum, aby się pytać o niejasności smile.gif

Tak więc pytam: Czy da się coś z tym zrobić w moim przypadku? Jeśli tak, to przekształcić to? Jak wywołać pliki send.php z server 1 nie wychodząc z pliku make.php?

Pozdrawiam!
pionas
mniej więcej będzie to wyglądać tak:

make.php
  1. // jakiś tam Twój kod...
  2.  
  3. $c = curl_init('url_serwera_drugiego');
  4. curl_setopt($c, CURLOPT_POST, 1); // dane przesyłane metodą post
  5. curl_setopt($c, CURLOPT_POSTFIELDS,'zmienna1=cos&zmienna2=cos2'); // przesylane zmienne z wartosciami
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. $s = curl_exec($c); // przypisanie zawartości strony do zmiennej $s
  8. curl_close($c);
  9.  
  10. // dalsze działanie skryptu
  11.  
servs
Nie jestem pewien czy dobrze rozumuję, ale chyba nie o taki efekt mi chodzi.

make.php ma wywoływać pliki send.php. Pliki send.php mają pobierać rekordy ze swoich baz danych i wysyłać je spowrotem do make.php.
Z tego co kolega podał, wygląda to tak, jakby plik send.php był wywoływany.. No właśnie nie wiem po co, bo zmienne są deklarowane już w pliku make.php, co w moim przypadku nie jest operacją możliwą.

Być może nie myślę logicznie, więc pozwoliłem sobie napisać przykładowe skrypty. Jeśli kolega byłby taki dobry, prosiłbym o pokazanie zastosowania cURLa na tych plikach.

make.php
  1. //Łączenie się z send.php i pobieranie zmiennych.
  2.  
  3. $data = $_POST['tablica'];
  4. if(!empty($data)){
  5. print_r($data);
  6. }


send.php
  1. include(connect.php);
  2. $query = mysql_query("SELECT `posts` FROM `users`");
  3. $tablica = mysql_fetch_array($query);
  4.  
  5. //I tu musi się dziać odpowiedź pliku do make.php, wysłana musi być tablica $tablica w postaci $_POST['tablica'].


Pozdrawiam!
pionas
No chyba trochę nie zrozumieliśmy się winksmiley.jpg
Tutaj lepsze by było aby w pliku send.php wyświetlić dane parsowane do xml'a
a potem w make.php odczytać te dane...

[EDIT]
Znalazłem coś takiego:
http://forum.php.pl/index.php?showtopic=12...;hl=unserialize
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.