#1 10. Januar 2009 User Management Script [Sessions] Hey... Ich baue mir gerade ein kleine Klasse zum UserManagement mit Sessions. Ich habe davor noch nie mit Sessions gearbeitet und bin mir deshalb noch nicht so wirklich sicher. Hier mal das was ich bis jetzt habe, ist noch nicht viel. Es wird die Session erstellt und überprüft. Bitte sagt mir mal ob das bis jetzt soweit in Ordnung ist oder ich schon größere Patzer drin hab. PHP: <? php class UserManagement { private $username ; private $userid ; private $tplsys ; function __construct ( $tplsystem ) { session_start (); // Session starten $this -> tplsys = $tplsystem ; // Tplsystem übergeben if( $_SESSION [ 'start' ] == 'true' ) { // Session überprüfen $this -> checkSession (); }else{ // Session init $this -> initSession (); } } private function initSession () { $_SESSION [ 'vaild' ] = time (); $_SESSION [ 'ip' ] = $_SERVER [ 'REMOTE_ADDR' ]; $_SESSION [ 'start' ] = "true" ; } private function checkSession () { if( $_SESSION [ 'ip' ] != $_SERVER [ 'REMOTE_ADDR' ]) { session_destroy (); $this -> initSession (); $this -> tplsys -> displayErrorSite ( "session_error.tpl" ); } } } ?> + Multi-Zitat Zitieren
#2 10. Januar 2009 AW: User Management Script [Sessions] Ich nehme an $tplsystem ist ein Object bzw. instanz der Klasse Template oder so. Würde das als Referenz und nicht als Kopie übergeben. (function __construct(&$tplsystem){}) + Multi-Zitat Zitieren
#3 10. Januar 2009 AW: User Management Script [Sessions] Upps, danke =) Aber mit den Session habe ich bis jetzt alles richtig gemacht oder? + Multi-Zitat Zitieren
#4 10. Januar 2009 AW: User Management Script [Sessions] Sorry, ich arbeite nie mit Sessions.... Aber sieht eigentlich soweit richtig aus... vaild = valid und statt den string "true" zu verwenden kannst du auch gleich den booleanwert true verwenden. Außerdem macht die methode checkSession keinen Sinn in meinen Augen, weil selbst wenn der user eine neue IP bekommt und dann deine Seite besucht, updated ja dein Script in initSession() die IP-Adresse. + Multi-Zitat Zitieren
#5 10. Januar 2009 AW: User Management Script [Sessions] Ahm das hab ich eigendlich gegen Session klau eingebaut... Hmm mal sehen vielleicht weiß noch einer ob das stimmt oder niht! + Multi-Zitat Zitieren
#6 10. Januar 2009 AW: User Management Script [Sessions] Achso, jo dann macht das evt. einen Sinn. Ich habe mehr an cookiebasierende sessions gerade gedacht... deshalb der Kommentar... + Multi-Zitat Zitieren
#7 10. Januar 2009 AW: User Management Script [Sessions] Jo okay... cookies können übrigens auch geklaut werden! + Multi-Zitat Zitieren
#8 10. Januar 2009 AW: User Management Script [Sessions] Hi, Das ist ja deine function mit der checkSession PHP: private function checkSession () { if( $_SESSION [ 'ip' ] != $_SERVER [ 'REMOTE_ADDR' ]) { session_destroy (); $this -> initSession (); $this -> tplsys -> displayErrorSite ( "session_error.tpl" ); } } Wenn die Bedingung erfüllt wird, zerstörst du deine Session. Das ist soweit ja auch noch okay, aber in der nächsten Zeile "$this->initSession();" willst du auf die Session Variabeln wieder neue Werte setzen. <-- Das macht ja nicht viel Sinn da du deine Session gelsöcht/beendet hast, also bringt diese Zeile nicht viel. LG Farin + Multi-Zitat Zitieren
#9 10. Januar 2009 AW: User Management Script [Sessions] Ja bis jetzt bringt sie noch nicht viel aber ich denke wenn man eingeloggt ist mache ich auch eine session variabel evtl $_SESSION['login'] oder so und die wird ja dann auch gelöscht, dannach soll er wieder ne session bekommen das er sich auf der seite richtig bewegen kann... hoffe ihr versteht was ich meine! + Multi-Zitat Zitieren
#10 10. Januar 2009 AW: User Management Script [Sessions] Nun muss ich dich noch etwas dazu fragen um zu verstehen was du wirklich machen möchtest. Ich nehme mal an das sich ein User über ein Userscript einloggt und darauf hin eine Session gestartet wird oder willst du das eine neue Session gestartet wird ohne das man sich einloggen muss ? Denn wenn es über ein loginscript geht, dann musst du den user wieder neueinloggen lassen. Lg Farin + Multi-Zitat Zitieren
#11 10. Januar 2009 AW: User Management Script [Sessions] Das ganze soll die User managen (auch die nicht eingeloggten) ist halt bis jetzt nur der ganz kleine teil das ich eigentlich nur wissen wollte ob das mit den Sessions jetzt einigermaßen stimmt =) + Multi-Zitat Zitieren
#12 10. Januar 2009 AW: User Management Script [Sessions] Sagen wir es so dein Script sollte funktionieren und die Session sind so schon richtig, aber die eine Zeile passt einfach nicht dort hin, es sei denn du würdest vorher wieder eine neue Session starten . So wie es im mom ist sollten die Einträge die du nach destroy_session() machst ins nichts gehen. Der ist für den Anfang okay ja. Ich hoffe nun habe ich dir gesagt was du wissen wolltest xD ? LG Farin + Multi-Zitat Zitieren
#13 10. Januar 2009 AW: User Management Script [Sessions] Es wird aber nach destroy_session() alles asugeführt ? Sprich mein Template kommt so wie es kommen soll! + Multi-Zitat Zitieren
#14 10. Januar 2009 AW: User Management Script [Sessions] Ja nach destroy_session(); sollte noch alles ausgeführt werden . Aber das initSession(); sollteste dannach trozdem wegmachen . Bzw es so ändern das auch wieder eine Session vorhanden ist . Lg Farin + Multi-Zitat Zitieren
#15 10. Januar 2009 AW: User Management Script [Sessions] stimmt jetzt hab ichs verstanden ^^ danke mann! + Multi-Zitat Zitieren