Online/Offline Bild Indikator

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

  • Online/Offline Bild Indikator

    Hallo,
    wie kann man den das Alter einer Bilddatei z.B eines Cambildes aus einer Datenbank bestimmen/auslesen und dann ein Online/Offline Bild Indikator anzeigen lassen? Hab sowas leider nur für shtml Seiten gefunden ... siehe Beispiel:
    <html>

    <head>
    <meta http-equiv="expires" content="0">
    <meta http-equiv="pragma" content="no-cache">
    <title>Alter der Bilddatei</title>
    </head>


    <body>
    <center>
    <h1>Alter der Bilddatei</h1>
    <img src="campic.jpg" width="320" height="240">
    <script language="javascript">
    <!--
    var fyear = <!--#config timefmt="%Y"--><!--#flastmod file="campic.jpg"-->;
    var fmon = <!--#config timefmt="%m"--><!--#flastmod file="campic.jpg"--> - 1;
    var fday = <!--#config timefmt="%d"--><!--#flastmod file="campic.jpg"-->;
    var fhour = <!--#config timefmt="%H"--><!--#flastmod file="campic.jpg"-->;
    var fmin = <!--#config timefmt="%M"--><!--#flastmod file="campic.jpg"-->;
    var fsec = <!--#config timefmt="%S"--><!--#flastmod file="campic.jpg"-->;
    var lyear = <!--#config timefmt="%Y"--><!--#echo var="DATE_LOCAL"-->;
    var lmon = <!--#config timefmt="%m"--><!--#echo var="DATE_LOCAL"--> - 1;
    var lday = <!--#config timefmt="%d"--><!--#echo var="DATE_LOCAL"-->;
    var lhour = <!--#config timefmt="%H"--><!--#echo var="DATE_LOCAL"-->;
    var lmin = <!--#config timefmt="%M"--><!--#echo var="DATE_LOCAL"-->;
    var lsec = <!--#config timefmt="%S"--><!--#echo var="DATE_LOCAL"-->;
    var filedate = new Date(fyear,fmon,fday,fhour,fmin,fsec);
    var localdate = new Date(lyear,lmon,lday,lhour,lmin,lsec);
    var datediff = Math.round((localdate - filedate) / 1000);
    if(datediff <= 600)
    {
    document.write('<p><img src="online.gif" width="100" height="20">');
    document.write('<p>Das Kamerabild wurde vor ' + datediff + ' Sekunden hochgeladen und ist aktuell.');
    }
    else
    {
    document.write('<p><img src="offline.gif" width="100" height="20">');
    document.write('<p>Das Kamerabild wurde vor ' + datediff + ' Sekunden hochgeladen und ist nicht aktuell.');
    }
    //-->
    </script>
    </center>
    </body>


    </html>

    Geht das auch in Php zu intigrieren?
    Bitte um Hilfe

  • #2
    Wenn ich das richtig sehe macht das Java-Script nicht mehr als die letzte Aenderung des Campics zu bestimmen und dann zu gucken, ob die momentane Uhrzeit kleiner als 10 Minuten ist.

    Das sollte auch in php gehen.

    Die Funktion filemtime() ermittelt die letzte Datei-Aenderung und liefert einen Unix-Timestamp zurueck und mit time() erhaelt man die momentane Uhrzeit (auch in Form eines Unix-Timestamps).
    Damit hat man dann ja alles was man braucht.

    Kommentar


    • #3
      Das Datum des Bildes und das Aktuelle Datum habe ich nun... Danke!

      $filedate = date ("F d Y H:i:s.", filemtime($filename));
      $date = date ("F d Y H:i:s.");


      aber wie bekomme ich nur diese Funktion hin damit nach einigen Minuten das offline Bild angezeigt wird


      {
      echo "<p><img src="online.gif" width="100" height="20">');
      }
      else
      {
      echo "<img src="offline.gif" width="100" height="20">');
      }

      Kommentar


      • #4
        mache beide datumsangaben als timestamp, dann kannst du die differenz bilden alá

        PHP-Code:
        if (($datenow $datelastpic)>3600) { ... 
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Original geschrieben von Abraxax
          mache beide datumsangaben als timestamp
          viel zu 'machen' gibt's da ja gar nicht, von natur aus liefert filemtime doch einen unix-timestamp.

          also:
          PHP-Code:
          if (( time() - filemtime($filename) )>3600) { ... 


          btw: evtl. noch interessant, je nachdem wie häufig das bild geändert wird:

          Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            PHP-Code:
            $filename 'campic.jpg';
            if (
            file_exists($filename)) {

              if (( 
            time() - filemtime($filename) )>3600) {
                echo 
            "<p><img src=\"online.gif\" width=\"100\" height=\"20\">";
              }
              else
              {
                echo 
            "<img src=\"offline.gif\" width=\"100\" height=\"20\">";
              }


            Soll das dann so aussehen? Funktioniert so nicht! HILFE!!!

            EDIT:
            php-tags eingefügt und code eingerückt
            Abraxax

            Zuletzt geändert von Abraxax; 12.03.2003, 12:36.

            Kommentar


            • #7
              was funktioniert nicht?

              aussdem müsste das if/else verdreht werden. so bekommst du das online-bild, wenn der user bereits offline ist.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Original geschrieben von slidxx
                Funktioniert so nicht! HILFE!!!
                hast du auch die zahl 3600 durch den sekundenwert ersetzt, den du in deinem beispiel benutzen willst?

                3600 sekunden sind eine stunden, wenn du weniger lange warten willst würde es sich natürlich empfehlen diesen wert anzupassen *g* (evtl. auch nur zum testen)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Habs geschnallt Vielen Dank

                  Kommentar


                  • #10
                    Habe festgestellt das es nur Funktioniert wenn das Cambild im selben Ordner liegt. Funktioniert nicht wenn man http://usw.cambild.jpg url (bzw. §cambild) angibt. Wollte doch gerne Bilder aus einer Datenbank abfragen. Kann man so etwas Realisieren?

                    Kommentar


                    • #11
                      das bild muss nicht im selben ordner liegen. dazu hast du ja $filename . hier kannst du auch path-angaben auf dem lokalen system angeben.

                      externe urls kann filemtime() nicht verarbeiten.

                      wenn bilder aus einer DB kommen musst du auch in der DB entsprechend die zeit ablegen, was das bild gemacht worden ist.

                      so einfach ist das...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Kann ich das vieleicht Automatisch in die Datebank eintragen lassen wenn die Bilder in der Vorschau gezeigt werden ?

                        Kommentar


                        • #13
                          klar. wenn du ein bild in die DB hochlädst, weisst du doch wann das gemacht wird... dieses datum+zeit (DATETIME) und/oder TIMESTAMP kannst du dabei verwenden.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            ich habe nur die url des Bildes in der Datenbank, welches dann in der Webcam-Vorschau gezeigt wird... nun dachte ich mir, das wenn ein Bild in der Vorschau gezeigt wird dann könnte man das aktuelle Bild-Datum in die Datenbank eintragen lassen. Dann könnte ich diese Bild-Datum mit der aktuellen Zeit vergleichen und dann wieder einen online/offline Indikator anzeigen.

                            Kommentar


                            • #15
                              das geht natürlich so nicht...
                              Original geschrieben von Abraxax
                              externe urls kann filemtime() nicht verarbeiten.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X