Hallo,
Habe ein Problem mit em Session System meines Browsergames.
Aufbau
1. Auf der Startseite gibt es ein Login Formular, mit dem man sich ins Spiel einloggen kann.
2. Gibt man seine Daten ein, so wird man zur Login Seite weitergeleitet. Auf dieser Seite wird nun die Session mit Daten befüllt. Anschliesend wird man zum Spiel weitergeleitet. Dabei wird die Session folgendermaßen mitgeschickt: "index.php?". SID .""
3. Nun gibt es im Spiel eine Login Überprüfung (Session soll 1 Stunde gültig sein). Hier der Code davon:
PHP-Code:
// Allgemeiner Login korrekt?
if(isset($_SESSION['usr_id']) AND !empty($_SESSION['usr_id'])
AND isset($_SESSION['usr_pw']) AND !empty($_SESSION['usr_pw'])
AND isset($_SESSION['usr_level']) AND $_SESSION['usr_level'] != ""
AND isset($_SESSION['usr_nick']) AND !empty($_SESSION['usr_nick'])
AND isset($_SESSION['this_settle'])){
// Session abgelaufen
if($_SESSION['visitor_ip'] != $_SERVER['REMOTE_ADDR'] OR $_SESSION['data_login_timestamp'] < (time() - 60*GAME_CONFIG_SESSIONTIME)){
header("Location: ../index.php?". SID ."&p=message&num=2");
exit;
}
}
// Nicht korrekt eingeloggt
else {
header("Location: ../index.php");
exit;
}
4. Folgende Session Einstellungen werden bei jeder Seite ausgeführt:
PHP-Code:
ini_set('session.use_cookies', 0);
ini_set("session.gc_maxlifetime", 3600);
ini_set("session.gc_divisor", 100);
ini_set("session.gc_probability", 100);
session_start();
Problem
Normalerweise müsste die Session nun 1 Stunde bestehen. Allerdings wird die Session nun bei einigen Spieler vor dieser Zeit einfach beendet (unregelmäßig). Also die erste "else" Anweisung wird ausgeführt und man wird auf die Startseite weitergeleitet.
Nun habe ich absolut keine Ahnung woran das liegen könnte.
Weitere Informationen
- Das selbe Session Script funktionierte mit einem anderen Code (Anderes Projekt) ohne Probleme. Dort war die Session Daten Menge allerdings um einiges kleiner. Bei dem genannten Browsergame hat die Session eine Größe von ca. 2kb (ca. 30 Werte).
- Auf dem selben Server ist ein Forum installiert (Wotlab). Dort funktionieren die Sessions ohne Probleme