Ich nehme den in PHP eingebauten Session-Mechanismus. Gegebenenfalls optimiere ich da noch etwas an den Konfigurationswerten. Fertig.
Meine Funktion für das Login sieht derzeit wie folgt aus
function login($mysqli, $userMail, $pw) {
$stmt = $mysqli->prepare("SELECT user_id FROM web_users WHERE user_emailadresse=? AND user_passwort=? AND user_aktiv=?");
$ak = 1;
$stmt->bind_param("sss", $userMail, $pw, $ak);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows() === 1) {
$stmt = $mysqli->prepare("Update web_users SET user_session=?, user_login=now() WHERE user_emailadresse=? AND user_passwort=?");
$stmt->bind_param("ssi", session_id(), $userMail, $pw);
$stmt->execute();
return true;
} else {
return false;
}
Ok, wenn ich den Browser schließe und neu aufrufe bin ich ausgeloggt, das ist schon einmal sehr gut. Meine Sorge ist einfach, was ist wenn der User an einem öffentlichen PC ist, den Browser nicht schleißt und ein anderer User kommt nach Stunden auf die Seite und kann sich einloggen bzw. er ist ja noch eingeloggt.