Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] file_get_contents

Einklappen

Neue Werbung 2019

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

  • [Erledigt] file_get_contents

    Hallo Leute!
    Ich bekomme folgende Fehlermeldung:
    Code:
    Warning: file_get_contents(http://85.126.***.***:8753/pictures.php): failed to open stream: no suitable wrapper could be found in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 21
    Mein .php Code:
    PHP-Code:
    <?php

    include ('db_con.php');

    $timestamp time();

    $datum date("Y-m-d H:i:s"$timestamp);

    $connection db_connect();

    function 
    getPicFromServer ($rServerPath$lServerPath) {

                
    $rServer['path'] = $rServerPath;

                
    $lServer['path'] = $lServerPath;

        

                
    $rServer['picDir'] = str_replace('pictures.php'''$rServer['path']);

                
    $rServer['source'] = file_get_contents($rServer['path']);

                
    $rServer['picUrls'] = explode("<br />"$rServer['source']);

        

      for (
    $i 0$i count($rServer['picUrls'])-1$i++) {

           echo 
    $rServer['picDir'].$rServer['picUrls'][$i].'<br>';

           
    copy($rServer['picDir'].$rServer['picUrls'][$i], $lServerPath.$rServer['picUrls'][$i]);

       }

    }

    $abfrage mysql_query("SELECT id,user_id,timedate FROM events");

    if(
    mysql_num_rows($abfrage)){

     while(
    $row mysql_fetch_assoc($abfrage)){

       
    $time time();

       
    $yearMonthDay explode("-"$row['timedate']);

       
    $year $yearMonthDay[0];

       
    $month $yearMonthDay[1];

       
    $daysplit explode(" "$yearMonthDay[2]);

       
    $day trim($daysplit[0]);

       

       
    $HourMinuteSeconds explode(":"$daysplit[1]);

       
    $Hour $HourMinuteSeconds[0];

       
    $Minute $HourMinuteSeconds[1];

       
    $Seconds $HourMinuteSeconds[2];

       

       
    $dateInSeconds mktime((int)$Hour, (int)$Minute, (int)$Seconds, (int)$month, (int)$day, (int)$year);

       
    $thirtyMinutes 60*30;

        
    $datum1 date("Y-m-d H:i:s"$dateInSeconds);  

       
    //Jetzt beginnt die eigentliche Abfrage

       
    if(($time-$thirtyMinutes) < $dateInSeconds && $dateInSeconds <= $time){

         
    $userSelect mysql_query("SELECT device_id FROM user WHERE id = '".mysql_real_escape_string($row['user_id'])."'");

         
    $user mysql_fetch_assoc($userSelect);

                 

         
    $device mysql_query("SELECT * FROM device WHERE id='".$user['device_id']."'");

         
    $userdevice mysql_fetch_assoc($device);

         

         
    $url "http://".$userdevice['IP'].":".$userdevice['port']."/";

         
    getPicFromServer ($url."pictures.php""http://www.php.de/images/".$row['user_id']."/".$row['id']."/");

       }

      }

    }

    ?>
    an was liegt das?
    Bitte um Hilfe

    thanks

  • #2
    PHP: file_get_contents - Manual

    PHP: Laufzeit-Konfiguration - Manual

    Da steht alles was du wissen musst. Der Zugriff über HTTP mit fopen(), file_get_contents() etc. ist nicht immer erlaubt.
    "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

    Kommentar


    • #3
      Was ist 8753 denn für ein Port? Hab ich noch nie was von gehört Ich nehme an, PHP weiß nicht, wie er mit diesem Port umgehen soll. Bist du sicher, dass das der richtige ist? Oder soll das vielleicht doch einfach 8080 bzw. 80 sein?

      Gruß

      PS: War nur ne Vermutung, vielleicht hast du allow_url_fopen auch aus.

      Kommentar


      • #4
        Zitat von Dark Guardian Beitrag anzeigen
        PHP: file_get_contents - Manual

        PHP: Laufzeit-Konfiguration - Manual

        Da steht alles was du wissen musst. Der Zugriff über HTTP mit fopen(), file_get_contents() etc. ist nicht immer erlaubt.
        das heisst also ich soll statt fille_get_contents einfach file nehmen? Versteh ich
        das richtig?

        Kommentar


        • #5
          Zitat von Sp1n Beitrag anzeigen
          das heisst also ich soll statt fille_get_contents einfach file nehmen? Versteh ich
          das richtig?
          Nein. file() wird das gleiche Problem machen.

          Du sollst gucken was in der PHP.ini Direktive allow_url_fopen steht und ob du es ggf. anschalten kannst wenn es ausgeschaltet ist.
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Zitat von Dark Guardian Beitrag anzeigen
            Nein. file() wird das gleiche Problem machen.

            Du sollst gucken was in der PHP.ini Direktive allow_url_fopen steht und ob du es ggf. anschalten kannst wenn es ausgeschaltet ist.
            ok vielen dank =)

            Kommentar


            • #7
              Zitat von christophk Beitrag anzeigen
              Was ist 8753 denn für ein Port? Hab ich noch nie was von gehört Ich nehme an, PHP weiß nicht, wie er mit diesem Port umgehen soll.
              Der Port hat damit nichts zutun.

              1. ist es egal welcher verwendet wird (solang es der richtige ist )
              2. muss PHP nicht den Port "kennen", es ist einfach Teil der Zieladresse für die Socketverbindung.

              Kommentar


              • #8
                jetzt hab ich das geändert und richtig gemacht, jetzt bekomm ich

                Code:
                http://85.126.198.253:8753/2010_6_11_14_59_1.png<br>
                Warning: copy(images/5/220/2010_6_11_14_59_1.png): failed to open stream: No such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 22
                http://85.126.198.253:8753/ip.jpg<br>
                Warning: copy(images/5/220/ip.jpg): failed to open stream: No such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 22
                http://85.126.198.253:8753/testpilot.png<br>
                Warning: copy(images/5/220/testpilot.png): failed to open stream: No such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 22

                Kommentar


                • #9
                  Zitat von Flor1an Beitrag anzeigen
                  Der Port hat damit nichts zutun.

                  1. ist es egal welcher verwendet wird (solang es der richtige ist )
                  2. muss PHP nicht den Port "kennen", es ist einfach Teil der Zieladresse für die Socketverbindung.
                  Okay, war auch nur eine Vermutung Hatte die Fehlermeldung für allow_url_fopen anders in Erinnerung

                  Gruß

                  Kommentar


                  • #10
                    PHP-Code:
                         $url "http://".$userdevice['IP'].":".$userdevice['port']."/";
                        
                    getPicFromServer ($url."pictures.php""http://www.php.de/images/".$row['user_id']."/".$row['id']."/"); 
                    Eine URL ist eine Einbahnstrasse - nur lesen, kein schreiben. Gib als Ziel mal einen lokalen Pfad im Dateisystem an... einen, der existiert.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Dann prüf mal deine Pfadangaben.

                      Außerdem:
                      PHP: copy - Manual

                      Wenn du eine URL als Ziel verwenden willst musts du einen Wrapper benutzen der Schreiben unterstützt. HTTP gehört nicht dazu.
                      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                      Kommentar


                      • #12
                        ist fopen_wrappers das gleiche wie allow_url_fopen?

                        Kommentar


                        • #13
                          Zitat von Sp1n Beitrag anzeigen
                          ist fopen_wrappers das gleiche wie allow_url_fopen?
                          fopen_wrappers ist eine Sammlung von Protokollen, mit denen fopen verwendet werden kann. Ist ein solcher Wrapper für ein Protokoll verfügbar, kann fopen mit dem Protokoll umgehen.

                          allow_url_fopen legt hingegen nur fest, ob der HTTP Wrapper für fopen aktiviert ist oder nicht.
                          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                          Kommentar


                          • #14
                            Naja mein eigentliches Problem ist jetzt.
                            Wenn ich die cronjob.php im Browser öffne funktioniert alles super und es klappt auch alles.
                            Nur muss ich die cronjob.php auf dem linux server öffnen da dieser den cronjob ausfüjhrt und da bekomm ich
                            beim Ausführen des Scripts die Fehlermeldung

                            PHP-Code:
                            http://85.126.xxx.xxx:8753/2010_6_11_14_59_1.png<br>
                            Warningcopy(images/5/220/2010_6_11_14_59_1.png): failed to open streamNo such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 28
                            http
                            ://85.126.xxx.xxx8753/ip.jpg<br>
                            Warningcopy(images/5/220/ip.jpg): failed to open streamNo such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 28
                            http
                            ://85.126.xxx.xxx:8753/testpilot.png<br>
                            Warningcopy(images/5/220/testpilot.png): failed to open streamNo such file or directory in /var/www/localhost/htdocs/MuBisA/cronjob.php on line 28 

                            Kommentar


                            • #15
                              Zitat von lstegelitz Beitrag anzeigen
                              allow_url_fopen legt hingegen nur fest, ob der HTTP Wrapper für fopen aktiviert ist oder nicht.
                              Nicht ganz.

                              PHP: List of Supported Protocols/Wrappers - Manual

                              Wie man dieser Liste entnehmen kann werden auch andere Wrapper von allow_url_fopen beeinflusst. Z.b. FTP und SSH2.
                              "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                              Kommentar

                              Lädt...
                              X