Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Fehlerabfrage PHP get_headers bzw. get_contents

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

    #16
    Zitat von coliflower Beitrag anzeigen

    Muss man in deinem Code auf noch etwas achten wenn man den WebServar auf UP/DOWN abgragt ?
    Nein eigentlich nicht. Außer man sollte vielleicht schauen, welche hilfreichen Optionen es noch für curl gibt: ==> HIER <==

    Zitat von coliflower Beitrag anzeigen
    Ich denke diesen Code-Schnipsel sollte man jedes Mal einbauen wenn man auf WebServer zugreift ...
    Es ist grundsätzlich zu empfehlen ein Error Handling einzubauen, nicht nur bei Webserver Zugriffen.
    Noch besser ist es, eine gute Validierung der Eingangsparameter zu machen, damit Errors/Exceptions soweit wie möglich vermieden werden.

    VG
    André

    Kommentar


      #17
      Es ist grundsätzlich zu empfehlen ein Error Handling einzubauen, nicht nur bei Webserver Zugriffen.
      Klar, nachvollziehbar ... WebServer und alles was über das Netzwerk läuft ist - denke ich - noch mal "strenger" zu bewerten ...

      Und danke für dein Feedback !!
      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        #18
        Ja, Error Handling ist immer wichtig. Das ist es schliesslich, was am Ende ein Programm stabil oder halt nicht stabil macht. Unvorhergesehene Fehler können immer auftreten. Man muss sie nur irgendwie abfangen, um einen kontrollierten Abgang zu gewährleisten.

        Und gerade bei URL-Zugriffen ist es meist nicht so einfach, wie es am Anfang erscheint. Der Server kann down sein (Physikalisch oder nur der Webserver), da hilft dann ein prüfen des Headers nicht viel (wie ich ja bei mir feststellen musste).
        Und wenn man die Headers prüft, dann dran denken, dass es da draussen vieles gibt. Nur auf "HTTP/1.1 404 Not Found" prüfen reicht nicht. Ich hatte schon Fälle, wo "HTTP/1.0 404 Not Found" zurückkam. Oder eben 403 (Forbidden), 405 (Method not allowed) und die ganzen 300er Redirections. (google.com und www.google.com geben u.U. andere Headers zurück).
        Also aufpassen und in diesem konkreten Fall nie blind darauf vertrauen. (Ausser das Zielsystem ist fix und das Verhalten bekannt, wie bei mir mit dem Wechselrichter.)

        Kommentar


          #19
          Zitat von jonofe Beitrag anzeigen

          Nein eigentlich nicht. Außer man sollte vielleicht schauen, welche hilfreichen Optionen es noch für curl gibt: ==> HIER <==


          Es ist grundsätzlich zu empfehlen ein Error Handling einzubauen, nicht nur bei Webserver Zugriffen.
          Noch besser ist es, eine gute Validierung der Eingangsparameter zu machen, damit Errors/Exceptions soweit wie möglich vermieden werden.

          VG
          André

          Nochnmals danke André !

          Ja, die Eingangsparameter frage ich soweit möglich ab, ob vorhanden und ob diese auch plausibel sind :-)

          die cURL würde ich noch gern um die curl_close($ch) (close cURL resource, and free up system resources) falls das Sinn macht ?
          Danach würde ich gerne deinen Code-Vorschlag immer dann wenn ich den WebServer abfrage, verwenden :-)

          Leider bin im mir nicht sicher ob ich die curl_close() zwischen $result und IF einbauen muss, quasis nach curl_exec() wie es in den Standardbeispielen gezeigt wird oder erst nach "IF" wie in diesem Beispiel ?

          Auch kann ich nicht einschätzen ob - THEORETISCH - eine sekündliche Abfrage hier zu irgendwelchen Problemen führen kann ?

          PHP-Code:
          try {
              
          $url 'http://192.168.0.245';
              
          $ch curl_init($url);
              
          curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
              
          curl_setopt($chCURLOPT_TIMEOUT1);
              
          $result curl_exec($ch);
              if (!
          $result) throw new Exception(curl_error($ch));  
          } catch (
          Exception $e)
          {
              
          writeToTraceLog('Exception: '.$e->getMessage());

          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar

          Lädt...
          X