SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.11.2007, 19:32:29
sk4ter sk4ter ist offline
Anfänger
 
Registriert seit: Nov 2007
Beiträge: 2
Session wird zu früh beendet ...

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
Mit Zitat antworten
  #2  
Alt 14.11.2007, 19:46:18
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session wird zu früh beendet ...

Hast Du mal nachgeprüft, ob eine komplett neue Session gestartet wurde <-> empty($_SESSION) oder ob nur ine der Bedingungen nicht erfüllt ist?
PHP-Code:
else
{
  if(!empty(
$_SESSION))
  {
    
error_log(var_dump($_SESSIONtrue)."\n"3"session.debug.txt");
  }
  else
  {
    
error_log("empty session\n"3"session.debug.txt");
  }

  
header("Location: ../index.php");
  exit;



Übrigens brauchst Du bei Verwendung von !empty() nicht vorer noch mit isset() testen.
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
  #3  
Alt 15.11.2007, 19:49:57
sk4ter sk4ter ist offline
Anfänger
 
Registriert seit: Nov 2007
Beiträge: 2
AW: Session wird zu früh beendet ...

Zitat:
Zitat von defabricator Beitrag anzeigen
Hast Du mal nachgeprüft, ob eine komplett neue Session gestartet wurde <-> empty($_SESSION) oder ob nur ine der Bedingungen nicht erfüllt ist?
Thx für den Code. Habe ihn mal eingefügt.
Es speichert mir die Nachricht "empty session".Also die Session ist aufeinmal komplett leer.

Hm. Wie überprüfe ich am besten, ob eine neue Session gestartet wurde? Aber ich wüsste nicht, wieso aufeinmal eine neue Session gestartet werden sollte.

Geändert von sk4ter (15.11.2007 um 20:36:57 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
session variblen gehen verlohren - immer neue session ID xeta PHP Grundlagen 9 03.08.2006 01:50:33
Problem mit Session und Weiterleitung mare26 PHP für Fortgeschrittene und Experten 3 06.10.2005 03:54:54
session problem mit session id Fabian85 PHP für Fortgeschrittene und Experten 24 01.02.2005 09:30:19
SESSION daten gehen leider nicht verloren! - wennd as fenster geschlossen wird Phil PHP für Fortgeschrittene und Experten 3 31.03.2004 14:08:33
session überprüfen... Xantos PHP für Fortgeschrittene und Experten 4 21.05.2002 11:54:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:30:45 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt