[PHP] User Management Script [Sessions]

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mr.Smoke, 10. Januar 2009 .

  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" );
                }
            }
       

            
        }
    ?>
     
  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){})
     
  3. 10. Januar 2009
    AW: User Management Script [Sessions]

    Upps, danke =)

    Aber mit den Session habe ich bis jetzt alles richtig gemacht oder?
     
  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.
     
  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!
     
  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...
     
  7. 10. Januar 2009
    AW: User Management Script [Sessions]

    Jo okay...
    cookies können übrigens auch geklaut werden!
     
  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
     
  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!
     
  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
     
  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 =)
     
  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
     
  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!
     
  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
     
  15. 10. Januar 2009
    AW: User Management Script [Sessions]

    stimmt jetzt hab ichs verstanden ^^
    danke mann!
     
  16. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.