Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Beim Schießen?
Was ist denn aus den guten alten User-Online-Methoden geworden, bei denen einfach jeder Besucher einen eigenen Eintrag mit Session-, User-ID und Timestamp der letzten Aktivität in einer MySQL-Tabelle hatte? Da konnte man noch sauber bei jedem Scriptaufruf die "Leichen" (inaktiv seit z.B. mehr als 600 Sekunden) rauslöschen ... hach, die Welt verändert sich so schnell.
<?php
session_start();
$db = @mysql_connect("localhost", "root", "");
mysql_select_db("db1", $db);
if (isset($_GET["name"]) and isset($_GET["log"]) and $_GET["log"] == "1") {
$sql = "INSERT INTO test (name, log, sid) VALUES ('" .$_GET["name"] ."', '" .$_GET["log"] ."', '" .session_id() ."')";
$sql .= " ON DUPLICATE KEY UPDATE log = '1', sid = '" .session_id() ."'";
mysql_query($sql);
} elseif (isset($_GET["name"]) and isset($_GET["log"]) and $_GET["log"] == "0") {
$sql = "UPDATE test SET Log = '0' WHERE name = 'test'";
mysql_query($sql);
}
$sql = "SELECT sid, log FROM test WHERE name = 'test'";
$result = mysql_query($sql);
if (mysql_num_rows($result) != 0 and session_id() == mysql_result($result, 0, "sid") and mysql_result($result, 0, "log") == 1) {
echo "bereits eingeloggt<br />";
?>
<a href="log.php?name=test&log=0">Logout</a>
<?php
} else {
?>
<a href="log.php?name=test&log=1">Login</a>
<br />
<?php
}
?>
Also im mom habe ich das so:
Ich habe in der DB einen Wert für online. Ist der 1 ist man on, bei 0 off. Beim Logout setze ich den Wert halt auf 0 beim einloggen auf 1. Ich möchte jetzt aber nicht auf jeder Seite neu die DB aufrufen und die Zeit aktuallisieren um dann hinzugehn und zu schaun, ob jemand seit zb. 15 min inaktiv war. Wenn man mal kurz was essen geht, wäre man ja auch off und müsste sich neu anmelden. Ich bin hier auch schnell mal 1 std afk und möchte mich auch nicht immer neuanmelden müssen.
Deshalb suche ich eine gute Möglichkeit beim schließen des Browsers einen DB-Aufruf zu machen und den Wert auf 0 zu setzen.