Martin Hein: logout

Hallo Forum,

ich habe ein Web-basiertes CMS gebaut. Der Redakteur meldet
sich an, pflegt seine Inhalte und logged sich wieder aus.
in dem Moment, soll eine Mail an den Adminitrator generiert
werden, dass dieser Redakteur Inhalte verändert hat. So weit
so gut. Alle Infos die in der Mail benötigt werden, speicher
ich in einer Session. Bevor ich die zum logout zerstöre, bau
ich einfach die Mail zusammen und schick sie ab.

Nun kommt der Fall, dass der Redakteur sich nicht ordentlich
abmeldet, sondern einfach den Browser schliesst bzw. garnichts
macht und nach Hause geht ;) Der Logout passiert natürlich
automatisch dadurch, dass die Session irgendwann abgelaufen
ist.

Wie generiere ich die Mail in dem Fall ?

irgendwie sicher per Cronjob, aber wie konkret. Da bin ich mir
noch nicht sicher. Was würdet Ihr machen ?

besten Dank für gute Ideen und

beste gruesse,
heinetz

  1. Kannst Du mit einem timeout arbeiten, wenn der Redakteur nach Hause geht?
    Oder ein onclose, wenn einfach die Seite gewechselt wird, bzw. der Browser geschlossen wird?

    1. Hi Sir,

      Kannst Du mit einem timeout arbeiten, wenn der Redakteur nach Hause geht?

      Serverseitig? Ja, aber dafür musst du erst mal die Daten serverseitig hinterlegen ;-)

      Oder ein onclose, wenn einfach die Seite gewechselt wird, bzw. der Browser geschlossen wird?

      Das ist eine schlechte Idee, weil genauso unverlässlich wie das Zerstören der Session, da Javascript in vielen Fällen ausgeschaltet ist.

      Martin, in diesem Fall würde ich dazu raten ein Speichermedium (z.B. MySQL Tabelle) auf dem Server anzulegen, in welchem du alle Änderungen protokollierst.

      Als nächstes schreibst du dir ein (ebenfalls PHP) Script, welches dieses Speichermedium durchläuft und alle Einträge per Mail an den Administrator sendet und anschließend aus dem Medium löscht oder als bereits verarbeitet kennzeichnet (z.B. MySQL Feld ENUM('Yes', 'No')).

      Dieses Script musst du dann nur noch per Cronjob in regelmäßigen Zeitabständen laufen lassen, mögliche Einträge in der Cronjob Tabelle könnten so aussehen:

      m  h  dom mon dow   command

      alle 30 Minuten

      */30 *  *   *   *     /usr/bin/php /absoluter/pfad/zum/script.php

      morgens um 9 Uhr und abends um 20 Uhr

      0  9  *   *   *     /usr/bin/php /absoluter/pfad/zum/script.php
        0  20 *   *   *     /usr/bin/php /absoluter/pfad/zum/script.php

      Der Pfad /usr/bin/php kann je nach Server variieren, ein which php auf der Kommandozeile kann dir den Pfad verraten.

      Viele Grüße,
        ~ Dennis.