HTTP POST Frage

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

  • #31
    Die, die im üblichen Schema übergeben werden, ja.
    (Dieses lautet bekanntlich name=value&name2=value2&...)
    schau dir nochmal den link zu faq-php.de an.

    Kommentar


    • #32
      ok, ich nehme an du meinst das :
      PHP-Code:
      $data "pid=14&poll_vote_number=2"
      iwie kann ich denn einen ganzen XML-String da mitschicken?

      Kommentar


      • #33
        versuch doch erst mal diesen string zu übergeben.

        Kommentar


        • #34
          wenn ich bei mir folgendes mache:

          PHP-Code:
          <?php
          $fp1 
          fopen("./test.xml","r");
          while(!
          feof($fp1))
          {
              
          $file1 fgets($fp1100);
              
          $file $file.$file1;
          }
          $fp fsockopen("www.jogi-web.de",80,$errstr,$errno);
          if(!
          $fp)
          {
              die();
          }
          else
          {
              
          $data "daten=".$file;
              
          fputs($fp"POST /xml/xml_svr.php5 HTTP/1.1\r\n");
              
          fputs($fp"Host: jogi-web.de\r\n");
              
          fputs($fp"Referer: jogi-web.de.de\r\n");
              
          fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
              
          fputs($fp"Content-length: "strlen($file) ."\r\n");
              
          fputs($fp"Connection: close\r\n\r\n");
              
          fputs($fp$data);
          }
          $data "";
          while(!
          feof($fp))
          {
              
          $fget fgets($fp128);
              
          $data .= $fget;
          }
          fclose($fp);
          $xml_arr explode("\r\n\r\n",$data);
          echo 
          $xml_arr[1];
          ?>
          kommt sowas raus :
          PHP-Code:
          Array 1 1 1 1 1 5 daten 5 ] => 486  A2   333333  91    10    3286347908514
              1      20    
          4019238219036    2      30    8019227171624    4    1 2 

          Zuletzt geändert von jogisarge; 28.06.2007, 08:42.

          Kommentar


          • #35
            du sollst an dem beispiel üben.

            Kommentar


            • #36
              ok, ich habe geübt.

              PHP-Code:
              $data "parm1=hans&parm2=Horst&parm3=paul&parm4=".$file;
                  
              //$data = urlencode($data);
                  
              fputs($fp"POST /xml/xml_svr2.php5 HTTP/1.1\r\n");
                  
              fputs($fp"Host: jogi-web.de\r\n");
                  
              //fputs($fp, "Referer: jogi-web.de\r\n");
                  
              fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
                  
              fputs($fp"Content-length: "strlen($data) ."\r\n");
                  
              fputs($fp"Connection: close\r\n\r\n");
                  
              fputs($fp$data); 
              $file ist mein XML-String.

              Auf der Serverseite gebe ich die Postwerte wie folgt aus:
              PHP-Code:
              foreach($_POST AS $key => $val)
              {
                  
              //echo urldecode($key)." - ".urldecode($val)."<br>";
                  
              echo $key." - ".$val."<br>";

              Die Ausgabe im Browser sieht so aus:
              PHP-Code:
              10 parm1 hans
              11 parm2 
              Horst
              10 parm3 
              paul
              207 parm4 
              A2 23423 10 3286347908514 1

              Das ist doch eigentlich ok, aber wo kommen die Zahlen 10,11,10,207,0 her.
              Die haben wohl irgendwas mit der Länge der POST-Daten zu tun, aber was?
              Und wie bekomme ich die weg?

              Kommentar


              • #37
                Re: ich habs geschafft

                Original geschrieben von jogisarge
                PHP-Code:
                [B]480<b>in meiner XML-Ausgabe stehen im Browser oben und unten immer irgendwelche Codes:
                </b> 
                <?xml version="1.0" encoding="UTF-8"?>
                <ew:ind xmlns:ew="http://www.test.net">
                ...
                </ew:inquiry_A2>

                [B]0[/B]
                Es geht um die fettgedruckten.
                Ich hab keine Ahnung(mal wieder) wo die herkommen??

                [/B]
                Ich denke mal, dass der Server der das Xml liefert mit Transfer-Encoding: Chunked antwortet.

                EDIT:
                Ich weiß nicht, ob es in der Config des Apachen bzw. deines verwendeten Webservers eine Directive gibt, die den Chunked-Transfer unterbindet.

                Wenn nicht, dann lies das Xml das ausgeliefert werden soll mit nem kurzen PHP-Script ein und setz vor dem ausliefern folgende Header:

                PHP-Code:
                    header('Connection: close'true);
                    
                header('Content-Length: unspecified'); 
                Du darfst dann natürlich nicht mehr die Xml im anderen Script direkt requesten sondern das PHP-Script.
                Zuletzt geändert von Quetschi; 28.06.2007, 09:22.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #38
                  Original geschrieben von jogisarge
                  das $HTTP_RAW_POST_DATA ist bei mir aber leer ?
                  http://www.php.net/manual/de/ini.cor...-raw-post-data
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #39
                    Das versteh ich jetzt nicht ganz.
                    Die XML-Daten lese ich doch eh ein, bevor ich diese als POST-Daten verschicke.
                    PHP-Code:
                    $data "parm1=hans&parm2=Horst&parm3=paul&parm4=".$file;
                    fputs($fp"POST /xml/xml_svr2.php5 HTTP/1.1\r\n");
                    fputs($fp"Host: jogi-web.de\r\n");
                    fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
                    fputs($fp"Content-length: "strlen($data) ."\r\n");
                    fputs($fp"Connection: close\r\n\r\n");
                    fputs($fp$data); 
                    $file sind meine XML-Daten.

                    Kommentar


                    • #40
                      Ahh... ich les immer nicht genau genug mit.

                      Deine Daten werden schon korrekt beim "Serverscript" landen - nur dieses gibt es dann ja wiederum aus - probier mal

                      PHP-Code:
                      header('Connection: close'true);
                      header('Content-Length: unspecified');

                      foreach(
                      $_POST AS $key => $val)
                      {
                          
                      //echo urldecode($key)." - ".urldecode($val)."<br>";
                          
                      echo $key." - ".$val."<br>";

                      Damit sollten deine Daten vom "Serverscript" in einem Schwung ans aufrufende Script zurückgesendet werden.

                      Das aufrufende Script sendet die Daten dann zu dir an den Browser, wenn ich dich richtig verstanden habe, oder?
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #41
                        jep, das ist es.
                        Ich danke dir !!!!!!!!!!!!!!!!!!!!!

                        Kommentar


                        • #42
                          Gut - du siehst jetzt dein gewünschtes Ergebnis - aber hast auch verstanden wie und warum es jetzt funktioniert?
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #43
                            ich hoffe es.
                            Ich denke, dadurch dass die Content-Länge nicht definiert ist,
                            werden die Daten nicht mit Transfer-Encoding: Chunked gesendet, oder ?

                            Kommentar


                            • #44
                              Jep - du hättest das aufrufende Script auch so anpassen können, dass es die Chunked-Antwort vom Serverscript wieder entsprechend zusammensetzt - aus Gründen der Faulheit und der Einfachheit der anderen Methode hab ich das bisher aber nie so gelöst. Bei größeren Datenmengen könnte es aber evtl. von Vorteil sein, wenn man das mit dem Chunked-Transfer so belässt und die Daten im Empfängerscript wieder zusammensetzt.

                              Das aufrufende Script (bzw. der Server auf dem es gehostet ist) wird übrigens die Daten evtl. auch wieder Chunked an deinen Browser senden (ist wahrscheinlich sogar ziemlich oft so) nur bekommt man das nicht mit - die Browser sind in der Lage die Brösel wieder zu nem ganzen Kuchen zusammenzusetzen.
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X