Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysłanie zapytania z serwera A do B
Forum PHP.pl > Forum > PHP
zaajcu
Cześć.
Potrzebuje wysłać zapytanie uwierzytelniające użytkownika z serwera A na serwer matka B który powinien sprawdzić czy dany user np może mieć dostęp i zwrócić jakieś dane Do serwera A np jakąś zmienna. W jaki sposób można to zrobić?

Chciałbym żeby to wyglądało tak:




  1. $respond = check_user($user_id);
  2. if($respond == '...')
  3. {
  4. }
  5.  
  6. function check_user($user_id)
  7. {
  8. // jakiś sposób komunikacji z drugim serwerem. wynik komunikacji ląduje do zmiennej $res;
  9.  
  10. return $res;
  11. }


Na obu serwerach mogą być problemy z uruchomieniem jakiś paczek. :/ wersja php to 5.2 - i tego nie jestem w stanie przeskoczyć

Macie jakiś pomysł?
sebastian.rozmus
Do takich rzeczy można użyć protokołu SOAP, w googlach napewno znajdziesz wiele kursów.
tolomei
Witaj.

Jest wiele sposobów możliwych do wykorzystania. Na przykład taki, że:

Serwer B udostępnia stronę np. serwerb.com/dane.php?userid=5. Ten skrypt przepuszcza jedynie zapytania od IP, które posiada server A. Po wejściu na ten adres, serwer B wyświetla uprawnienia użytkownika o numerze id podanym w adresie i wypisuje dane dotyczące jego uprawnień w formacie xml lub json.

Serwer A w ciele funkcji sprawdzającej może używać funkcji file_get_contents() lub CURL-a do pobrania zawartości wspomnianej strony na serwerze B.

To jest tylko jedna z propozycji. Implementacja zależy od szczegółów.

Pozdrawiam.
zaajcu
A co wy na to żeby zrobić tak:



  1. $page = file_get_contents('www.mojastrona.pl');
  2. eval($page);
  3. if($dostep == true)
  4. {
  5. ...
  6. }


a moja strona zwraca w formie tekstu:

  1. $dostep = true;
tolomei
Nie wiem czemu, ale mam wpojony strach przed funkcją eval() smile.gif
Technicznie jest ok.
zaajcu
a to czym jest ten strach spowodowany? poza tym że wykona się cokolwiek w eval() ?
tolomei
Udostępnienie funkcji eval() dla danych z zewnątrz to tak jakbyś opublikował login i hasło do swojego ftp-a. Przy odpowiednich zabezpieczeniach - jest ok, ale zawsze znajdzie się jakaś luka/obejście, a wtedy może być krucho.

Zresztą po co wykorzystywać buldożer do przesadzenia kwiatka?
Przy danych w formacie JSON wystarczy tylko coś takiego:

  1. // $dane = '{"dostep":1}';
  2.  
  3. $tablica = json_decode($dane, true);
  4. if($tablica['dostep'] === 1) {
  5. // dalszy kod
  6. }


W czym problem?
zaajcu
No i gitara;)
Tak też zrobię. Problem tylko w tym że nie znam JSON'a. Najwyższa pora poznać wink.gif

Dzięki
tolomei
Najfajniejsze, że nawet nie musisz JSON-a znać smile.gif
Odpal sobie taki kod:

  1. echo json_encode(array('dostep' => 1)); // {"dostep":1}


I z tablicy tworzysz JSON-a. Proste.
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.