echo $begrüßung;
Frage1: ich überüfe die Gültigkeit eines Login dadurch dass ich die Differenz von jetziger Zeitpunkt abzgl. Zeitpunkt letzter Aktivität mit der Dauer des SessionTimeout vergleiche. Wenn ich die Dauer des SessionTimeout bspw. auf 2 Std. setze, ist es dann möglich, dass trotzdem die Session nicht mehr vorhanden ist, da session.gc_maxlifetime standardmäßig auf 24min gesetzt ist?
Die von dir berechneten Zeiten spielen bei PHPs Session-Handling keine direkte Rolle. PHP nimmt die Zeit des letzten modifizierenden Zugriffs der Session-Datei.
Besonders wenn du dir den session.save_path mit anderen teilst, kann es passieren, dass andere Einstellungen für die Session-Zeiten verwenden werden. Die von dir geänderten Werte gelten nur für den Garbage-Collector, der von deinem session_start() aufgerufen wird.
Frage2: der obige Code gibt immer die Zahl 120 aus und die Session Id bleibt die gleiche. Obwohl doch die physische Sessiondatei mit einer Wahrscheinlichkeit von 100% gelöscht werden sollte, da die maxlifetime auf 1 begrenzt wurde.
Die Session-ID wird noch aus deinem alten Cookie stammen, das noch nicht abgelaufen ist. Durch das explizite Setzen des Wertes kann auch kein anderer Wert als 120 rauskommen. Es sei denn, du hast die Zeile beim zweiten Aufruf rausgenommen, dann wäre die Ursache höchstwahrscheinlich eine andere.
Frage3: zumindest sollte doch session_destroy die Session zerstören. Erfolgt aber nicht. Ist das eine mit der Session zusammenhängende globale Variable? Den lt. dem php manuel werden diese nicht gelöscht.
session_destroy() räumt die Session nicht rückstandsfrei weg. Beispielsweise bleibt das Session-Cookie erhalten. Fortsetzung siehe Frage 2.
echo "$verabschiedung $name";