Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Socket öffnen in funktion

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Socket öffnen in funktion

    Halli Hallo, ich weiß grade nicht ob das thema wirklich richtig ist, aber ich stehe grade voll auf dem schlauch

    und zwar geht es darum das ich einen socket per funktion öffnen möchte das würde so aussehen

    PHP-Code:
    <?php
    function ReadOven(){
                
    $con=fsockopen("$IP"2049$errno$errstr);
                If(
    $con){
                       
    fputs($con"\$01I\r");
                       
    $buffstream_get_contents($con1310);
                 }
                 else{
                  echo 
    $errno " ( " $errstr " ) <br>";
                  }
                  
    fclose($con);
    }
    ReadOven(); ?>
    wenn ich es so via funktion ausführe bekomme ich den errorcode

    "0 ( php_network_getaddresses: getaddrinfo failed: Name or service not known )"

    wenn ich einfach das funktionsraster drum herum weg mache funktioniert es einwandfreit .... jemand ne idee ??


  • #2
    $IP gibt es in der Funtkion nicht und die " um die Variable sind nutzlos...
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      gut okey hab ich jetzt fix geändert denn $IP wird vorher schon definiert, habe nun auch in der funktion übergeben, fehler bleibt der selbe

      sieht nun so aus
      PHP-Code:
      <?
      function ReadOven($IP){
            ......
      }

      Kommentar


      • #4
        Mehr Code, Mehr Fehler. Dreh dein Error-Reporting hoch, dann hättest du schon den Fehler mit der IP bekommen.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          das problem ist ja, wenn ich es normal mache also ohne das ich es in eine funktion packe, alles läuft ohne probleme

          seit dem ich es jetzt einfach weil ich nich dauerhaft die connection aufrecht erhalten will, sondern einfach nur kurz öffnen daten auslesen und wieder schließen möchte

          den fehlende Return der mir grade eingefallen ist ist auch eingebaut

          Kommentar


          • #6
            Wie/wo rufst du die Funktion auf? Zeige Code...

            Mein Tipp: Du übergibst einfach nix
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              PHP-Code:
              <?php
              $IP
              =hostname;
              function 
              ReadOven($IP){
               ..... 
              return 
              $stream;
              }
              $buff=ReadOven($IP);
              fehlermeldung bleibt aus, aber die werte werden nicht im formular angezeigt, wie vorher bevor ich es versucht habe in eine funktion zu packen.

              die IP soll änderbar sein da ich mit dem script mehrere öfen ansteuern möchte, die statik ist derzeit nur zum testen, bis soweit alles so ist wie ich es sein soll

              Kommentar


              • #8
                PHP-Code:
                $IP=hostname
                Phantasiecode, oder wirklich eine Konstante? Im trüben fischen ist sinnlos. Wenn du echte Hilfe willst, musst du auch echten Code zeigen - jedenfalls die relevanten Teile.
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Zitat von hausl Beitrag anzeigen
                  Phantasiecode, oder wirklich eine Konstante? Im trüben fischen ist sinnlos. Wenn du echte Hilfe willst, musst du auch echten Code zeigen - jedenfalls die relevanten Teile.
                  "hostname" steht stellvertretend für die IP, ist derzeit konstant zum testen, wird zum schluss durch ein formular auch dynamisch

                  Kommentar


                  • #10
                    Läuft auf der IP an Port 2049 denn auch eine Anwendung?
                    Wird der Port evtl. von der Firewall geblockt?
                    Enhält $IP noch eine Protokollangabe?
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Wie gesagt wenn ich es so mache funktioniert es nicht.

                      Zitat von Gabbanerd Beitrag anzeigen

                      PHP-Code:
                      <?php
                      function ReadOven($IP){
                                  
                      $con=fsockopen("$IP"2049$errno$errstr);
                                  If(
                      $con){
                                         
                      fputs($con"\$01I\r");
                                         
                      $buffstream_get_contents($con1310);
                                   }
                                   else{
                                    echo 
                      $errno " ( " $errstr " ) <br>";
                                    }
                                    
                      fclose($con);
                                    return 
                      $buff;
                      }
                      $stream=ReadOven($IP); ?>
                      schreibe ich es jedoch so:

                      PHP-Code:
                       $con=fsockopen("$IP"2049$errno$errstr);
                                  If(
                      $con){
                                         
                      fputs($con"\$01I\r");
                                         
                      $buffstream_get_contents($con1310);
                                   }
                                   else{
                                    echo 
                      $errno " ( " $errstr " ) <br>";
                                    }
                                    
                      fclose($con); 
                      ist es kein problem

                      Kommentar


                      • #12
                        Und was wird ausgegeben, Fehler, Notices..

                        Versuch mal so:

                        PHP-Code:
                        ini_set('display_errors'1);
                        error_reporting(-1);


                        function 
                        ReadOven($IP) {
                            
                        $con fsockopen($IP2049$errno$errstr);
                            If (
                        $con) {
                                
                        fputs($con"\$01I\r");
                                
                        $buff stream_get_contents($con1310);
                                
                        fclose($con);
                            } else {
                                echo 
                        $errno " ( " $errstr " ) <br>";
                                
                        $buff false;
                            }
                            
                            return 
                        $buff
                        }


                        $IP "000.000.000.000"// hier mit deiner IP natürlich
                        $stream ReadOven($IP);
                        var_dump($stream); 
                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          jetzt funktionierts, dankeschön

                          Kommentar


                          • #14
                            Und was war nun das Problem?
                            Soweit ich sehen kann, hat hausl den Code nicht wirklich entscheidend verändert, bloß das error_reporting hochgedreht und Debugausgaben gemacht.
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              Das würde mich auch interssieren, hätte ja "nur" auf eine "echte" Fehlermeldung gehofft.
                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X