Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SOAP przesył danych
Forum PHP.pl > Forum > PHP
MarcinTryka
Witam. Integruję sklep internetowy z oprogramowaniem bazodanowym na komputerze w sklepie. JA mam stworzyć serwer usług w PHP. Program bedzie się z nim łączył, logował i robił różne dziwne rzeczy smile.gif

Utworzylem plik test.php, podalem do niego adres w programie i program wywołuje mi ten plik (debuggowałem poprzez zapis do pliku). Niestety nie potrafie odczytać wysyłanych przez program danych. count($_POST/$_GET/$_FILES) daje mi 0. Program używa do komunikacji w obie strony plikow xml. Czy macie może pomysł w jaki sposób program ten może wysyłać informacje? Jak mówie, tablice $_POST GET FILES są puste. Nie bardzo wiem gdzie szukać... a manula tak przyziemnymi rzeczami sie nie zajmuje.

program korzysta z SOAP
PiotrLegnica
Spróbuj
  1. <?php
  2. file_get_contents('php://stdin');
  3. ?>
wrzasq
zmienna $HTTP_RAW_POST_DATA albo podobnie jak PiotrLegnica, ale nie php://stdin, a php://input

ale w PHP masz gotowe klasy do tworzenia serverow i klientow SOAP.
MarcinTryka
Witam ponownie. Chciałbym zapytać o WSDL i SOAP. Byłbym bardzo wdzieczny za pomoc, bo jestem w kropce ... w necie ciezko mi znalezc cokolwiek gdzie byloby wiecej informacji niz przypuszczen, a specyfikacja programu laczacego sie z moja usluga jest napisana dla kogos kto juz to zrobil :/Mogłby mi ktoś to wyjaśnić? co to jest tak właściwie ten plik wsdl? Z tego co widziałem, to tam są same definicje funkcji, danych wejściowych i wyjściowych ...samych danych tam nie ma .... taki przykłądowy plik wsdl był w specyfikacji programu który ma sie z moją usługą łączyć, ale facet z pomocy technicznej mówił mi że tego pliku nie trzeba pisać "z palca" tylko on ma się sam generować. Korzystam z biblioteki nuSoap.i w tym przykłądowym pliku wsdl było np:...
  1. <xmlns="http://schemas.xmlsoap.org/wsdl/">
  2. <types xmlns="http://schemas.xmlsoap.org/wsdl/" />
  3. <message name="GetOrdersRequest">  
  4.  <part name="AUserName" type="xsd:string" />
  5.  <part name="APassword" type="xsd:string" />
  6.  <part name="ALastOrderId" type="xsd:int" />
  7. </message><message name="GetOrdersResponse">
  8.  <part name="return" type="xsd:string" />
  9. </message>
....Czyli (moim zdaniem - na tyle na ile udało mi sie to pojąć) powinienem utworzyć funkcję:
  1. <?php
  2. $server->register('GetOrders');
  3.  
  4. function GetOrders($AUserName,$APassword,$ALastOrderId){
  5. // praca z parametrami wejsciowymi, danymi itp/
  6. return $jakis string //a moze nie return tylko echo?
  7. }
  8.  
  9. ?>
robie tak dla wszystkich funkcji podanych w wsdl-u w specyfikacji i nic :/

Jak podam programowi sciezke:http://adresserwera/server.php?wsdlTo mam odpowiedz:

Unable to load WSDL File/Location: http://adresserwera/server.php?wsdl.
Error [Nieprawidłowa wartość na najwyższym poziomie dokumentu.Line: 1This service does not provide WSDL]


Jezeli dam sciezke bez koncowki ?wsdl to mi zwraca:

Interface not supported

Co to jest ten plik wsdl? W jaki sposob trzeba go tworzyc? czy plikiem wsdl ma byc to co zwraca funkcja? (poprzez echo/return). Nie jestem w stanie od tygodnia wywnioskowac tego ze specyfikacji produktu, a obsluga techniczna programu wybtnie nie ma ochoty tłumaczyc tego :/ (tlumaczenie niech pan sobie poczyta o wbservices - ja czytam od tygodnia, niestety nie odpowiada to na moje pytania :/)
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.