Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Script soll Webcam von URL abrufen und abspeichern und immer wieder überschreiben

Einklappen

Neue Werbung 2019

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

  • PHP Script soll Webcam von URL abrufen und abspeichern und immer wieder überschreiben

    Hallo Leute.
    Wenn ich das hier in der falschen Kategorie eingetragen habe dann tut es mir leid. Google Suche hat mir nichts passendes angezeigt außer das Forum.

    Zu meinem Anliegen.
    Ich nutze mehrere Webcams die per FTP Bilder in einem Ordner auf meinen Server speichert. Dort läuft ein PHP Script per Cronjob, was dann die Bilder mit Datumsstempel jede Minute zu eine Bilddatei webcam.jpg umschreibt und alle anderen Bilder (mit Datumsstempel) löscht. Das funzt bestens.

    Ein zweites PHP Script holt sich dann jede Minute die Bilddatei in einen anderen Ordner und vergibt einen Bildnamen. Zum Beispiel: webcamvogelhausvorn.ipg
    Seit einiger Zeit musste ich die PHP Version des Servers hochdrehen und seit dem legt das Script nur noch eine leere Datei ab also 0kb.

    Hier der Code

    PHP-Code:
    <?php /* 
     _|_|_|_|_|    _|_|      _|_|_|  _|    _|  _|_|_|  
         _|      _|    _|  _|        _|  _|      _|    
         _|      _|    _|  _|        _|_|        _|    
         _|      _|    _|  _|        _|  _|      _|    
         _|        _|_|      _|_|_|  _|    _|  _|_|_| 

    © Script von Tilman Ockert - tocki.de - blog.tocki.de
    */

    $contentsfile_get_contents('https://URL.de/FI9903P_00626E65C4E5/snap/webcam.jpg'); /* Quelle des Bildes */ 
    setlocale(LC_TIME'de_DE'); /* deutsches Datum setzen */ 
    $savename webcamvogelhausvorn/* Variable für den Dateinamen */

    $savefile fopen("$savename.jpg""w");
    fwrite($savefile$contents);
    fclose($savefile);
    ?>
    Jetzt meine Fragen.
    Kann mir einer helfen und das Script so abändern, dass es wieder funktioniert?
    Kann mir eventuell jemand ein Script basteln was funktioniert?

    Gibt es eine Möglichkeit nur ein Script zu basteln was alles erledigt?
    Also die frisch angekommen Bilder der Webcam umschreibt und in einem anderen Verzeichnis ablegt?

    Jetzt werden einige Fragen warum in einen anderen Ordner. Das Problem ist, dass meine Foscam Webcams alle einen anderen Pfad angeben wenn die per FTP Bilder auf dem Server ablegen:
    Beispiel: https://beispiel-URL.de/FI9903P_00626E65C4E5/webcam.jpg
    Wenn ich jetzt die Bilddatei in eine Webseite einbinde dann zeigt es das Bild an. Wenn die Webcam irgendwann kaputt geht und ich die ersetze dann legt die Webcam auf dem Server wieder einen anderen Ordner an und ich muss dann immer wieder die URL auf den Webseiten ändern wo die Webcam eingebunden ist.
    Darum das zweite Script was so eine Datei in einem anderen Ordner anlegt https://beispiel-url.de/webcamvogelhausvorn.jpg

    Ich bin bereit auch was für eine Erstellung eines ordentlich funktionierenden PHP Script Geld zu bezahlen.

    (Aus Datenschutzgründen möchte ich hier nicht die originalen URL`s angeben)

    Danke für eure Hilfe.

  • #2
    PHP-Code:
    $savename webcamvogelhausvorn 
    Ist webcamvogelhausvorn eine Konstante oder fehlen da die Anführungszeichen um den String?
    So kann das Skript auf jeden Fall noch nie richtig funktioniert haben.

    Kommentar


    • #3
      Ich vermute eher, dass das $ davor vergessen wurde.
      ErrorReporting hätte sich da aber melden müssen, vermutlich ist das gar nicht aktiviert?
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        PHP-Code:

        $source 
        'https://example.com/FI9903P_00626E65C4E5/snap/webcam.jpg';

        $target 'webcamvogelhausvorn.jpg';

        $temp tempnam(
            
        dirname($target),
            
        filename($target)
        );

        $status copy(
            
        $source,
            
        $temp
        );

        if(
        $status) {
            
        rename(
                
        $temp,
                
        $target
            
        );

        Geld bitte an https://paypal.me/blar – Vielen Dank

        Kommentar


        • #5
          Ich danke für eureAntworten. Habe den Code vom Script direkt so hier reinkopiert und das Script lief bis vor einer Woche seit Jahren. Was es aber auch nie machte, Bilder zu holen wo die IP der Kamera oder der Bildpfad ohne Zertifikat https:// angegeben war. Danke Blar teste ich und du bekommst deine Spende. Freue mich, dass ihr mir geholfen habt.
          Hätte auch schon eher geantwortet aber ich bekam keine Info Mail, dass hier geantwortet wurde.

          Heute Abend setze ich mich gleich dran.

          Kommentar


          • #6
            Zitat von Blar Beitrag anzeigen
            PHP-Code:

            $source 
            'https://example.com/FI9903P_00626E65C4E5/snap/webcam.jpg';

            $target 'webcamvogelhausvorn.jpg';

            $temp tempnam(
            dirname($target),
            filename($target)
            );

            $status copy(
            $source,
            $temp
            );

            if(
            $status) {
            rename(
            $temp,
            $target
            );

            Geld bitte an https://paypal.me/blar – Vielen Dank


            Hallo Blar.
            Dein Script funktioniert leider auch nicht. Ich habe das leere alte Bild aus dem Verzeichnis entfernt, dein Script Code in der PHP Datei ersetzt. Wenn ich dein Script also die PHP Datei aufrufe so sollte es doch die Bilddatei anlegen. Macht es aber leider nicht.
            Wenn ich den Code von mir verwende und die PHP Datei aufrufe dann legt es eine leere Bilddatei ab. Könntest du bitte nochmal drüber schauen ob du was findest?

            Kommentar


            • #7
              Habe basename versehentlich als filename geschrieben. So einen Wert gibts aber nur bei pathinfo

              PHP-Code:
              $source 'https://www.php.de/images/misc/phpdelogo.png';

              $target 'webcamvogelhausvorn.png';

              $temp tempnam(
                  
              dirname($target),
                  
              basename($target)
              );

              $status copy(
                  
              $source,
                  
              $temp
              );

              if(
              $status) {
                  
              rename(
                      
              $temp,
                      
              $target
                  
              );

              Kommentar


              • #8
                Zitat von Blar Beitrag anzeigen
                Habe basename versehentlich als filename geschrieben. So einen Wert gibts aber nur bei pathinfo

                PHP-Code:
                $source 'https://www.php.de/images/misc/phpdelogo.png';

                $target 'webcamvogelhausvorn.png';

                $temp tempnam(
                dirname($target),
                basename($target)
                );

                $status copy(
                $source,
                $temp
                );

                if(
                $status) {
                rename(
                $temp,
                $target
                );

                Danke erstmal
                Sorry, vielleicht kann ich es nicht erkennen aber dein erstes Script und das von gestern unterscheiden sich doch bloß in der URL (Bildpfad) und in der Datei die es ablegen soll.
                Auf jeden Fall wird auch jetzt nichts abgleget. Habe die Datei unverändert in die PHP Datei gelegt und aufgerufen:

                Ergebnis im Browser:
                Code:
                } $source = 'https://www.php.de/images/misc/phpdelogo.png'; $target = 'webcamvogelhausvorn.png'; $temp = tempnam( dirname($target), basename($target) ); $status = copy( $source, $temp ); if($status) { rename( $temp, $target ); }

                Kommentar


                • #9
                  Wenn du im Browser PHP-Code siehst, dann läuft einfach kein PHP auf deinem Webserver.

                  Kommentar


                  • #10
                    Zitat von hellbringer Beitrag anzeigen
                    Wenn du im Browser PHP-Code siehst, dann läuft einfach kein PHP auf deinem Webserver.
                    Wieso läuft dann im selben Verzeichnis eine Joomla Installation?

                    Kommentar


                    • #11
                      Zitat von frank-werner Beitrag anzeigen
                      Wieso läuft dann im selben Verzeichnis eine Joomla Installation?
                      Nachdem man von hier aus keinen Einblick auf deinen Server hat, kann man das schwer beurteilen. Fakt ist jedenfalls, dass PHP-Code, der im Browser landet, einfach nicht vom Server ausgeführt wurde. Was du jetzt aus dieser Information machst, das liegt bei dir.

                      Häufige Anfängerfehler:

                      1. Die PHP-Datei wurde nicht als .php-Datei abespeichert, sondern als irgendwas anderes.
                      2. <?php Tags vergessen.
                      3. Die PHP-Datei nicht per HTTP-Request aufgerufen, sondern direkt mit dem Browser geöffnet (wodurch natürlich der Webserver umgangen wird).

                      Kommentar


                      • #12
                        Zitat von hellbringer Beitrag anzeigen

                        Nachdem man von hier aus keinen Einblick auf deinen Server hat, kann man das schwer beurteilen. Fakt ist jedenfalls, dass PHP-Code, der im Browser landet, einfach nicht vom Server ausgeführt wurde. Was du jetzt aus dieser Information machst, das liegt bei dir.

                        Häufige Anfängerfehler:

                        1. Die PHP-Datei wurde nicht als .php-Datei abespeichert, sondern als irgendwas anderes.
                        2. <?php Tags vergessen.
                        3. Die PHP-Datei nicht per HTTP-Request aufgerufen, sondern direkt mit dem Browser geöffnet (wodurch natürlich der Webserver umgangen wird).
                        1. PHP läuft auf jeden Fall auf dem Server.
                        2. die Variablen hatte ich erste weggelassen dann mit denen getestet. Ergebnis:
                        Code:
                        Parse error: syntax error, unexpected '}', expecting end of file in /var/www/web159/html/webcam/Webcam_Vogelhaus1/getimage.php on line 2
                        3. Wenn ich die URL über einen Domain mit der Endung getimage.php aufrufe und in der PHP Datei mein altes Scriptcode belasse, wird ja ein Bild erzeugt was aber 0kb hat.
                        Wenn ich die selbe PHP Datei aufrufe und den Script Qelltext vom Blar drin habe, passiert nichts.
                        Nochmal zur Info. Bis zum 14.12.2021 lief mein altes Script mehrere Jahre und ich konnte es immer über eine URL im Browser aufrufen. Diesen Pfad (URL) lies ich dann über einen Cronjob aufrufen. Es holte das Webcam Bild, legte es im Verzeichnis ab und gab der Bilddatei einen bestimmten Namen.

                        Ich habe auch schon den Hoster angeschrieben und gefragt ob Sicherheitsstandards geändert wurden.

                        Also wenn ich in der getimage.php ein funktionierenden Scriptcode hinterlegt habe und dann diese Datei aufrufe sollte es funktioneren. Vielleicht könnte ja Jemand mal bitte das Script bei sich testen. Vielelicht liegt der Fehler wirklich bei meinem Hoster

                        Kommentar


                        • #13
                          "passiert nichts" ist halt eine ziemlich unbrauchbare Fehlerbeschreibung. Wenn nichts passiert, musst du eben debuggen. Lass dir Variableninhalte mit var_dump() ausgeben und überprüfe, ob sie das gewünschte beinhalten. Und wie gesagt, immer das Error-Log lesen.

                          Du musst dein Script selber debuggen, wenn du dein Problem lösen willst. Das Forum kann dich dabei nur unterstützen, aber die Arbeit musst du schon selber machen.

                          Wenn du willst, dass jemand anders die Arbeit für dich macht, dann gehört der Thread in das Unterforum Script-Börse, und nicht in PHP Einsteiger. Was ist jetzt dein Wunsch?

                          Kommentar


                          • #14
                            Zitat von hellbringer Beitrag anzeigen
                            "passiert nichts" ist halt eine ziemlich unbrauchbare Fehlerbeschreibung. Wenn nichts passiert, musst du eben debuggen. Lass dir Variableninhalte mit var_dump() ausgeben und überprüfe, ob sie das gewünschte beinhalten. Und wie gesagt, immer das Error-Log lesen.

                            Du musst dein Script selber debuggen, wenn du dein Problem lösen willst. Das Forum kann dich dabei nur unterstützen, aber die Arbeit musst du schon selber machen.

                            Wenn du willst, dass jemand anders die Arbeit für dich macht, dann gehört der Thread in das Unterforum Script-Börse, und nicht in PHP Einsteiger. Was ist jetzt dein Wunsch?
                            Ich habe keine Ahnung was ich jetzt machen soll. Ganz oben schrieb ich, dass ich mich erkenntlich zeige, wenn mir jemand helfen kann. Habe kein Problem selber dran zu arbeiten aber ich brauche Unterstützung.

                            Kommentar


                            • #15
                              Warum machst du nicht mal das, was man dir sagt? Das wäre doch ein Anfang...

                              Ansonsten wie gesagt, wenn du überhaupt nichts selber machen kannst, klingt das eher nach einem Programmierauftrag als noch einer Unterstützung.

                              Kommentar

                              Lädt...
                              X