php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-01-2008, 12:32
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard Anfängerfrage SOAP

Hallo Experten,

ersteinmal ich bin Anfänger und versuche mich mit PHP zu beschäftigen.

Ich habe die Aufgabe Daten die mir mit Soap und POST übertragen werden sollen, zu verarbeiten und als Soap wieder zurückzusenden (XML?) ohne WSDL.

Wie muss ich mir das vorstellen?

Benötige ich dafür nur ein Server oder auch einen Client?

Wie kann ich den Inhalt der SOAP ENV abfangen?

Wäre sehr dankbar wenn Ihr mir bei meinem Einstieg helfen könntet.

Gruß
Maxjenne
Mit Zitat antworten
  #2 (permalink)  
Alt 15-01-2008, 13:42
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ich würde vorschlagen, dass du dich erstmal grundlegend informierst. Das alles noch mal niederzuschreiben, nur weil ein neuer User in diesem Forum ist, macht generell keinen Sinn, weil es schon viele Quellen im Netz gibt.

So wie sich deine Aufgabe anhört, würde ein Server eigentlich reichen.
Aber zum Testen solltest du natürlich auch einen Klient haben, mit dem du die SOAP-Request simulieren kannst und Antworten kontrollieren kannst.
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #3 (permalink)  
Alt 15-01-2008, 13:57
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Ichbinich,

ich habe mir schon einiges durchgelesen, aber mir fehlt der zündende Gedanke. Auch habe ich mir ein kleines Testprogramm geschrieben und das dazugehörige Server Programm. Wusste aber nicht ob dies so richtig war, aber Du bestätigst mich in meinem Konzept des Servers. Mein client versendet meine Soap-Datei (2 Felder) mit fputs und ruft auch den Server auf. Nur die Inhalte meiner beiden felder stehen in der HTTP_RAW_POST_DATA als ein Eintrag. Ich dachte ich würde die Feldnamen empfangen und damit auch die Ihnalte herauslesen können.

Kannst Du mir sagen wo ich die Felder auslesen kann, bzw. die Inhalte sehe.

Danke für Deine Hilfe
ist nicht so einfach das Thema.

Maxjenne
Mit Zitat antworten
  #4 (permalink)  
Alt 15-01-2008, 14:00
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zeig doch mal Code her. Bedienst du dich der Soap-Klassen von PHP?
Mit Zitat antworten
  #5 (permalink)  
Alt 15-01-2008, 14:15
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das mit den Soap-Class habe ich noch nicht verstanden.

hier ist mein Programm das die soap-Datei via Post verschickt.

PHP-Code:
<?php 
$file 
"";
$fp1 fopen("C:/temp/test.xml","r");

while(!
feof($fp1))
{
    
$file1 fgets($fp1);
    
$file $file.$file1;
}

$data "";
$fp fsockopen("xxx.xxx.xxx.xxx",80,$errstr,$errno);

if(!
$fp)
{
    die();
}
else
{
    
fputs($fp"POST /CheckPZN_soap.php HTTP/1.1\r\n");
    
fputs($fp"Host: xxx.xxx.xxx.xxx\r\n");
    
fputs($fp"Content-length: "strlen($file) ."\r\n");;
    
fputs($fp"Content-Type: application/soap+xml; charset=utf-8\r\n");
    
fputs($fp"Connection: close\r\n\r\n");
    
fputs($fp$file);
}
while(!
feof($fp))
{
    
$fget fgets($fp128);
    
$data .= $fget;
    echo(
$fget);
}
fclose($fp);
?>

und hier ist mein server Programm

PHP-Code:
<?php 
header
("Content-Type: application/soap+xml; charset=utf-8");
import_request_variables("gp""P");
$fil 1;
$PZN$HTTP_RAW_POST_DATA;

function  
CheckPZN($PZN) {

// ----------------------------------------------
// Diverse Sql-Abfrage(habe ich entfernt)
// ----------------------------------------------

  
return $CheckPZN;
}

$server = new SoapServer(null,array('uri' => "http://xxx.xxx.xxx.xxx"));
$server->addFunction("CheckPZN");            //Funktion zum Server hinzufügen
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
  
$server->handle();
}
?>
und hier ist meine Soap-Datei :

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body xmlns="http://xxx.xxx.xxx.xxx/">
<CheckPZN>
<PZN>0617172</PZN>
<in_kundennummer>123456</in_kundennummer>
</CheckPZN>
</soap12:Body>
</soap12:Envelope>
Mit Zitat antworten
  #6 (permalink)  
Alt 16-01-2008, 11:05
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Als Rückmeldung bekomme ich immer folgendes :
  • HTTP/1.1 200 OK
    Date: Wed, 16 Jan 2008 08:55:40 GMT
    Server: Apache/2.2.6 (Win32) mod_ssl/2.2.6 OpenSSL/0.9.8e PHP/5.2.5
    X-Powered-By: PHP/5.2.5
    Content-Length: 600
    Content-Type: application/soap+xml; charset=utf-8

    <?xml version="1.0" encoding="UTF-8"?>

    Und folgendes als ein String :

    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://xxx.xxx.xxx.xxx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:CheckPZNResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">0617172</return></ns1:CheckPZNResponse></env:Body></env:Envelope>

Wie kriege ich die Rückmeldung als xml hin?
Mit Zitat antworten
  #7 (permalink)  
Alt 16-01-2008, 15:03
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Und folgendes als ein String (...) Wie kriege ich die Rückmeldung als xml hin?
Das ist doch XML. Oder willst du ein Objekt? Dann guck dir vielleicht mal simplexml an.
Btw: Warum nicht die SOAP-Klassen?
Mit Zitat antworten
  #8 (permalink)  
Alt 16-01-2008, 15:10
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo PHP-Desaster,

1. wie meinst Du das mit den Soap Klassen?

2. bei zurückgesendeten XMl? Datei steht aber immer ns1< aber es sollte folgendermaßen aussehen :

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 600

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<CheckPZNResponse xmlns="http://xxx.xxx.xxx.xxx">
<CheckPZNResult>string</CheckPZNResult>
</CheckPZNResponse>
</soap12:Body>
</soap12:Envelope>

das verstehe ich nicht

Gruß
Maxjenne
Mit Zitat antworten
  #9 (permalink)  
Alt 16-01-2008, 16:17
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
1. wie meinst Du das mit den Soap Klassen?
Guck dir mal den Link an, den ich an "SOAP-Klassen" geklebt habe!

Zitat:
2. bei zurückgesendeten XMl? Datei steht aber immer ns1< aber es sollte folgendermaßen aussehen(...)das verstehe ich nicht
Ich verstehe dein Problem ehrlich gesagt nicht!
Mit Zitat antworten
  #10 (permalink)  
Alt 16-01-2008, 16:28
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich dachte es wird folgendes zurückgeschickt :

Beispiel :

<soap12:Body xmlns="http://xxx.xxx.xxx.xxx/">
<CheckPZN>
<PZN>0617172</PZN>

und nicht :

env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:CheckPZNResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">0617172</return></ns1:CheckPZNResponse></env:Body></env:Envelope>

ist das denn so richtig?

Ich weiß nicht wie man diese Klassen einsetzt und wann?

Und wie kann ich den Inhalt der <PZN> einlesen, leider finde ich keinen Hinweis darüber im net. Wo steht dieser Inhalt (SOAP_BODY????) damit ich ihn weiterverarbeiten kann?

<soap12:Body xmlns="http://xxx.xxx.xxx.xxx/">
<CheckPZN>
<PZN>0617172</PZN>
<in_kundennummer>123456</in_kundennummer>
</CheckPZN>
</soap12:Body>
Mit Zitat antworten
  #11 (permalink)  
Alt 16-01-2008, 16:51
IchBinIch
 Registrierter Benutzer
Links : Onlinestatus : IchBinIch ist offline
Registriert seit: Apr 2003
Beiträge: 324
IchBinIch ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bist du die sicher, dass du den Unterschied zwischen gesendeten Daten und empfangenden Daten verstehst?

Welche Daten schickst du vom Klient an den Server?
Welche Daten schickt der Server zurück an den Klient?
__________________
ICH BIN ICH!!!
Mit Zitat antworten
  #12 (permalink)  
Alt 16-01-2008, 16:59
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry aber leider bin ich NEULING!

Ich habe in den letzten tagen soviel gesucht und gelesen, das ich glaube das ich garnichts mehr verstehe.

im oberen Teil ist die Beschreibung meiner Tätigkeit bzw. meiner Ahnungslosigkeit.
In der Variable $HTTP_POST_RAW steht " 0617172 123456 " also der Inhalt meiner Felder PZN und in_kundennumer. Aber wo stehen die Felder getrennt? als $PZN un $in_kundennummer.
Kann ich die Inhalte nicht irgendwo aus "Feldnamen" lesen?
Mit Zitat antworten
  #13 (permalink)  
Alt 16-01-2008, 20:17
maxjenne
 Newbie
Links : Onlinestatus : maxjenne ist offline
Registriert seit: Jan 2008
Beiträge: 8
maxjenne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo PHP Desaster,

das mit den Soap Klassen, war ein guter Tip. Jetzt bekomme ich den Inhalt und die Rückgabe klappt auch.

Wie kann ich den jetzt die Felder $PZN und $in_kundennummer zurückgeben.

Beim Return kann ich ja nur ein Feld zurückgeben?

Bis jetzt habt Ihr mir aber RICHTIG GUT GEHOLFEN !!!

DANKE!!!!!!!

Maxjenne

Nicht jeder hat die Möglichkeit sofort alles zu wissen, deshalb ist man ja auch NEULING.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:32 Uhr.