Upload via GUI (290 Dateien)

This commit is contained in:
2026-10-23 17:22:24 +00:00
parent 80be774c3e
commit 41e3aca842
6 changed files with 789 additions and 3 deletions
@@ -123,6 +123,24 @@ try {
[$s, $body] = $call('GET', '/staff/session_ping.php?check=1', $jar, $POLL);
$check($s === 401, 'Die Abfrage der Restzeit meldet ebenfalls „abgelaufen“ (HTTP ' . $s . ')');
// C2: Seite wird vom Browser selbst neu geladen (Tab nach dem Ruhezustand, Neuladen per Skript): bei abgelaufener Sitzung Anmeldeseite, nie die rohe Fehlermeldung
$jar = $login();
$setAge($jar, 31 * 60);
[$s, $body, $loc] = $call('GET', '/staff/reports.php', $jar, $SCRIPT_NAV);
$check($s === 302 && str_contains($loc, 'login') && !str_contains($body, 'sessionExpired'), 'Vom Browser selbst ausgelöster Seitenaufruf bei abgelaufener Sitzung führt zur Anmeldung statt zur Fehlermeldung (HTTP ' . $s . ')');
$jar = $login();
$setAge($jar, 31 * 60);
[$s, $body, $loc] = $call('GET', '/staff/reports.php', $jar, ['Accept: text/html,application/xhtml+xml']);
$check($s === 302 && str_contains($loc, 'login'), 'Auch ältere Browser ohne Sec-Fetch-Kopfzeilen werden bei einem Seitenaufruf zur Anmeldung geleitet (HTTP ' . $s . ')');
// C3: Ein Hintergrund-Abruf beendet die abgelaufene Sitzung zuerst; die nächste Seite zeigt trotzdem den Grund auf der Anmeldeseite
$jar = $login();
$setAge($jar, 31 * 60);
$call('GET', '/staff/availability_status.php', $jar, $POLL);
[$s, , $loc] = $call('GET', '/staff/reports.php', $jar, $USER_NAV);
[$s2, $loginPage] = $call('GET', '/staff/login.php', $jar, $USER_NAV);
$check($s === 302 && str_contains($loc, 'login') && $s2 === 200 && str_contains($loginPage, 'wegen Inaktivität abgemeldet'), 'Die Anmeldeseite nennt den Grund („wegen Inaktivität abgemeldet“), auch wenn ein Hintergrund-Abruf die Sitzung zuerst beendet hat');
// D: echter Seitenaufruf (Klick/F5) verlängert, per Skript ausgelöstes Neuladen nicht
$jar = $login();
$setAge($jar, 29 * 60);