fgets schlägt fehl

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

  • fgets schlägt fehl

    Hallo Leute,

    ich bin langsam am Ende... Ich will von PHP aus, einen java Servlet aufrufen... habe den unten stehenden Code benutzt.. Es hat vor 4 Tagen noch richtig funktioniert aber seit einige tagen schlägt einfach fgets fehl... Ich habe keine änderungen am code durchgeführt. Es liegt auch nicht am tomcat-server, denn ich habe auch auf einen anderen rechner mit einen neuen tomcat versucht aber ohne erfolg..

    Hier ist der Code

    PHP-Code:
    <?php

    $data 
    "name=tcha&vorname=will";

    $response postDataToHost("localhost""8080""/Test/Test"$data);

      function 
    postDataToHost($host$port$path$data_to_send) {

            
    $fp fsockopen($host$port);
            
    $referer "http://".$host.":".$port."".$path;
        
    if (!
    $fp) {
        echo 
    $errstr" : " .$errno ."<br />\n";
    } else {
        
    $out "POST $path HTTP/1.1\r\n";
        
    $out .= "Host: $host\r\n";
        
    $out .= "Referer: $referer\r\n";
        
    $out .= "Content-type: application/x-www-form-urlencoded\r\n";
        
    $out .= "Content-length: "strlen($data_to_send) ."\r\n";
        
    $out .= "Connection: close\r\n";
        
    $out .= $data_to_send;
        
            
    fwrite($fp$out);

        
    $res fgets($fp1);
        if (!
    $res) {
            echo 
    "fgets fehlgeschlagen"; die();
        }
            
        while(!
    feof($fp)) {
            
    $res .= fgets($fp128);
            if (!
    $res) { echo "fgets fehlgeschlagen"; die(); }
        }
        
    fclose($fp);
    }
            
            echo 
    "Response : " .$res;
            return 
    $res;                  
        }
    ?>
    Wie gesagt, ich bekomme nur auf dem bildschirm zu sehen, dass fgets fehlgeschlagen.. Mein servlet wird gar nicht angesprochen..

    Kann bitte jemand mir sagen warum oder ein anderer weg zeigen wie ich von php aus eine java klasse bzw. servlet aufrufen kann..

    Danke für eure Antwort

    Mfg

    William
    Zuletzt geändert von wkamdem; 21.10.2007, 15:35.

  • #2
    Kannst du das Servlet im Browser aufrufen?

    Kommentar


    • #3
      Ja ich kann das servlet im browser aufrufen...

      Kommentar


      • #4
        ($out .= "Connection: close\r\n" nach dem letzten header gehört ein doppelter crlf

        und $res = fgets($fp, 1); und dann fgets in einer schleife ist mir auch nicht so ganz klar.

        Kommentar


        • #5
          ich hatte vorher erst nur die while schleife ohne $res = fgets($fp, 1);

          Ich dachte, es liegt vielleicht an der while-schleife bzw. die 128, das ich bei fegts() migegeben habe...

          deshalb habe ich $res = fgets($fp, 1);eingeführt nur zum testen...

          Wenn man sieht, ich landet ich in der if-Abfrage
          PHP-Code:
          $res fgets($fp1);
              if (!
          $res) {
                  echo 
          "fgets fehlgeschlagen"; die();
              } 
          bekomme ich dann auf dem bildschirm "fgets fehlgeschlagen" und das skript wird beendet... Also es war nur zum testzweck...

          Kommentar


          • #6
            Hallo 3DMax,

            ich habe doppelter crlf hinzugefügt.... bekomme immer "fgets fehlgeschlagen"

            Der code sieht jetzt so aus
            PHP-Code:
            <?php
            error_reporting
            (E_ALL);
            $data "name=tcha&vorname=will";

            $response postDataToHost("localhost""8080""/Test/Test"$data);

              function 
            postDataToHost($host$port$path$data_to_send) {

                    
            $fp fsockopen($host$port);
                    
            $referer "http://".$host.":".$port."".$path;
                
            if (!
            $fp) {
                echo 
            $errstr" : " .$errno ."<br />\n";
            } else {
                
            $out "POST $path HTTP/1.1\r\n";
                
            $out .= "Host: $host\r\n";
                
            $out .= "Referer: $referer\r\n";
                
            $out .= "Content-type: application/x-www-form-urlencoded\r\n";
                
            $out .= "Content-length: "strlen($data_to_send) ."\r\n";
                
            $out .= "Connection: close\r\n\r\n";
                
            $out .= $data_to_send;
                
                    
            fwrite($fp$out);

                
            $res fgets($fp1);
                if (!
            $res) {
                    echo 
            "fgets fehlgeschlagen"; die();
                }
                    
            //    while(!feof($fp)) {
            //        $res .= fgets($fp, 128);
            //        if (!$res) { echo "fgets fehlgeschlagen"; die(); }
            //    }
                
            fclose($fp);
            }
                    
                    echo 
            "Response : " .$res;
                    return 
            $res;                  
                }
            ?>
            Zuletzt geändert von wkamdem; 21.10.2007, 19:41.

            Kommentar


            • #7
              PHP-Code:
                  $res fgets($fp1);
                  if (
              $res===false) {
                      echo 
              "fgets fehlgeschlagen"; die();
                  } 
              Schlägt die Abfrage immer noch fehl? error_reporting oben?

              Kommentar


              • #8
                Ja es schlägt immer fehl...

                Was meinst du mit error_reporting??

                Kommentar


                • #9
                  Ja es schlägt immer fehl...
                  Ich meine, ob sie nach meiner Änderung immer noch fehlt schlägt!!
                  -> if ($res===false)

                  Was meinst du mit error_reporting??
                  Siehe Regeln!

                  Kommentar


                  • #10
                    Ja ich habe deine änderungen hinzugefügt und es schlägt immer fehl...

                    Kommentar


                    • #11
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        Hallo, ich habe error_reporting eingebaut... Es kam dann am bildschirm dass die variable $res nicht deklariert ist....

                        Jetzt kann ich mein servlet ansprechen...

                        Danke für eure Hilfe

                        mfg

                        william

                        Kommentar

                        Lädt...
                        X