"Internal Server Error" bei POST-Anfrage über Socket

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

  • "Internal Server Error" bei POST-Anfrage über Socket

    Hallo,


    woran kanns liegen, wenn man bei einem POST-Aufruf über Socket-Verbindung einen Fehler 500 vom Server bekommt?

    Die Verbindung öffne ich über die einigermaßen gut im Netz verbreitete Methode:


    PHP-Code:
    function PostToHost($host$path$referer$data_to_send)
    {
                              
                              
    $fp fsockopen($host80);
                              
    printf("öffnen!\n");
                              
    fputs($fp"POST $path HTTP/1.0\r\n");
                              
    fputs($fp"Host: $host\r\n");
                              
    fputs($fp"Referer: $referer\r\n");
                              
    fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
                              
    fputs($fp"Content-length: "strlen($data_to_send) ."\r\n");
                              
    fputs($fp"Connection: close\r\n\r\n");
                              
    fputs($fp$data_to_send);
                              
    printf("gesandt!\n");
                            
                              while(!
    feof($fp))
                              {
                                  echo 
    fgets($fp128);
                              }
                              
    printf("fertig!\n");
                              
    fclose($fp);
                            
                              return 
    $res;
                              

    Antwort:

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    Probiert hab ich schon HTTP-Version 1.0 und 1.1, kein Unterschied.


    Viele Grüße!
    Gockulus herumwurschtulens

  • #2
    Wie sieht denn ein
    PHP-Code:
    var_dump($data_to_send); 
    aus ? Kannst du den String hier mal posten ?

    Gruss

    tobi
    p.s. installiert dir mal die FF Extension liveHeaders und schaue bei einem Formular, wie FF diese Daten versendet.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Der String zu

      PHP-Code:
      var_dump($data_to_send); 
      sieht so aus:

      string(5) "t=303"
      Live Headers hab ich mal installiert. Auf jeden Fall kann ich den String "303" in der Form in der Ausgabe nicht finden, auch nicht, wenn ich den Request auf andere Server loslasse, wo ich dann einen Fehler 404 bekomme, weil da das Skript nicht existiert.

      Auch mit urlencode um $data_to_send krieg ich den gleichen Fehler.

      Kommentar


      • #4
        erscheint der 500er auf deinem Server, oder dem Zielserver?

        Kommentar


        • #5
          Aufm Zielserver, der Aufruf scheint immerhin stattzufinden.

          Kommentar


          • #6
            Aha, dann dürfte es auch nicht dein Problem sein. sondern das des dortigen Webmasters.

            Wie sieht denn deine Anfage an den Server aus?

            Kommentar


            • #7
              Die Aufrufdaten (in ersetzter Form, um den Server des Kollegen nicht unnötig zu strapazieren ):

              PHP-Code:
              $host "www.domain.de";
              $path "/cgi-bin/verz/skript.cgi";
              $referer "www.domain.de/cgi-bin/verz/skript.cgi";
              $data_to_send "t=303"
                                   
              PostToHost($host$path$referer$data_to_send); 
              Kann da etwas Falsches festgestellt werden?

              Kommentar


              • #8
                Wenn du Dummy Daten angibst, mit sicherheit nicht. Du hast doch selbst gesagt, dass der Fehler beim Zielserver auftritt. also musst du untersuchen, ob es einen besonderen Grund (Absicht?) gibt, dass er beim Zugriff über das Script erscheint, oder woran es liegt.

                Kommentar


                • #9
                  Was kommt denn da an technischen Möglichkeiten in Frage?

                  So ein Apache-Fehler 500 sieht für mich eben mehr nach einer falschen Kodierung (Form) der POST-Request-Daten aus als nach einem dateninhaltlichen Fehler, außer, der Programmierer leitet bei Unstimmigkeiten gleich zur 500er-Seite um...

                  Ich werd in demnächst mal wieder kontaktieren, auch wenn er halt immer schwerstens beschäftigt ist.

                  Kommentar


                  • #10
                    nun gut, wer nicht will, der hat schon. Tschüß!

                    Kommentar

                    Lädt...
                    X