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?". session_name() ."=". session_id() .""
3. Nun gibt es im Spiel eine Login Überprüfung (Session ist 1 Stunde gültig). Hier der Code davon:
4. Folgende Session Einstellungen werden bei jeder Seite ausgeführt:
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 "else" Anweisung wird ausgeführt und man wird auf die Startseite weitergeleitet.
Nun habe ich absolut keine Ahnung woran das liegen könnte. Also in der Session sind um die 30 Werte gespeichert (ca 2 kb).
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?". session_name() ."=". session_id() .""
3. Nun gibt es im Spiel eine Login Überprüfung (Session ist 1 Stunde gültig). 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;
}
PHP-Code:
ini_set('session.use_cookies', 0);
ini_set('session.use_trans_sid', 0);
ini_set("session.gc_maxlifetime", 3600);
session_start();
setcookie(session_name(), session_id(), time()+3600);
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 "else" Anweisung wird ausgeführt und man wird auf die Startseite weitergeleitet.
Nun habe ich absolut keine Ahnung woran das liegen könnte. Also in der Session sind um die 30 Werte gespeichert (ca 2 kb).
Kommentar