Ankündigung

Einklappen
Keine Ankündigung bisher.

POST-Parameter mit fsockopen() übertragen (XML)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema POST-Parameter mit fsockopen() übertragen (XML).

    POST-Parameter mit fsockopen() übertragen (XML)

    Daten sollen an eine XML-Schnittstelle übergeben werden...

    Anleitung hierzu: Die XML-Anfrage muss via HTTP-POST übermittelt werden. Der POST-Parameter (welcher die XML-Daten enthält) muss ebenfalls "xml" heißen.

    http://www.domain.de/xml.html?xml=...

    Wo liegt da der Fehler:

    Code:
    $query = rawurlencode("xml=<Daten><Name>".$name."</Name></Daten>");
    $domain = "www.domain.de";
    $sock=fsockopen($domain,80);
    
    if($sock)
    
    {
    		
    fputs($sock,"POST /xml.html HTTP/1.0\n");
    fputs($sock,"Host: ".$domain."\n");
    fputs($sock,"Content-type: application/x-www-form-urlencoded\n");
    fputs($sock,"Content-length: ".strlen($query)."\n\n".$query);
    			
    while(!feof($sock)){$res.=trim(fgets($sock,128));}
    		
    echo $res;
    	
    fclose($sock);
    	
    }
    Der Server meldet immer "POST-Parameter not found"...

  • Gast-Avatar
    Ein Gast antwortete
    Ah so. Für den Fall das jemand ein ähnliches Problem hat.
    PHP-Code:
    <?php
    $query 
    'xml='.rawurlencode('<Daten><Name>'.$name.'</Name></Daten>');
    $domain 'www.domain.de';

    $errno=$errstr=0;
    $sock=fsockopen($domain,80$errno$errstr);

    if(!
    $sock) {
        die(
    $errstr);
    }
    else {
        
    fputs($sock"POST /xml.html HTTP/1.0\n\r");
        
    fputs($sock"Host: ".$domain."\r\n");
        
    fputs($sock"Content-type: application/x-www-form-urlencoded\r\n");
        
    fputs($sock"Content-length: ".strlen($query)."\r\n\r\n");
        
    fputs($sock$query);
      
      
    $res=''
        while(!
    feof($sock)) {
            
    $res.=trim(fgets($sock,128));
        }
        
    fclose($sock);

        echo 
    $res;
    }
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nö ich hab die Lösung mittlerweile gefunden

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Und nun ist er wohl eingeschnappt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Es sind eben doch die Details.

    Was macht rawurlencode()? Und was macht es mit =? Wozu wird das benötigt?
    Und jetzt die Preisfrage: Warum ist das bei xml= unerwünscht?

    Mit "rausnehmen" ist natürlich nicht "löschen" gemeint.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Was soll das bringen? Dann wird ja erst die Variable "xml" nicht mehr erkannt...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Gut, dann bin ich mal gespannt, wier lange es dauert, bis Du ausprobiert hast, das Gleicheitszeichen aus dem rawurlencode rauszunehmen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ja mit solchen Details kann ich mich wirklich nicht aufhalten, weil \n vollkommen reicht und bisher auch überall funktioniert hat.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Und wenn es kein Schönheitsproblem ist?
    Alter Verwalter, probier es endlich aus und fasel nicht drumherum.

    ftp://ftp.isi.edu/in-notes/rfc2616.txt
    generic-message = start-line
    *(message-header CRLF)
    CRLF
    [ message-body ]
    start-line = Request-Line | Status-Line
    Die Spezifikation sagt \r\n (crlf). Dein Programm benutzt \n (lf). Mögliche Fehlerquelle, eleminieren. Jetzt. Fang endlich, an diese zwei-Sekunden-Aufgabe umzusetzen oder such Dir ein anderes Hobby. Nicht glauben, dass es nicht daran liegt; wissen.
    Bei sowas fass ich mir echt an den Kopf.
    "Warum kein Diesel, nur weil da Super auf dem Tankdeckel steht? Mit solchen Schönheitsdetails kann ich mich jetzt nicht aufhalten"

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich brauch eine Lösung des Problems und nicht die von kleinen Schönheitsproblemen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Es geht um das \r\n statt \n.
    Probier es aus. Wenn es nicht daran liegt, super, eine Fehlerquelle in 2 Sekunden ausgeschlossen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ja wozu auch PEAR wenn ich nichtmal weiß ob das beim Kunden läuft?!??!?!

    Es geht hier lediglich darum das eine Variable richtig erkannt wird und mehr nicht.

    Da oben kann nur ein kleiner Fehler drin sein...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Na wenn Du meinst.
    Mir wäre das einfache Suchen und Ersetzen um den Spezifikationen zu genügen ja auch viel zu kompliziert

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nein es soll so einfach wie möglich gehen, also ohne PEAR-Mist.

    \r\n ist in dem Falle auch egal, weil der xml-Parameter ja nichtmal erkannt wird.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Schonmal mit dem PEAR httpclient versucht?
    http://pear.php.net

    In den http specs steht immer crfl also \r\n und nicht nur \n
    Ob es daran liegt, weiss ich nicht.

    Einen Kommentar schreiben:

Lädt...
X