Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

smarty und Session

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: German
View previous topic :: View next topic  
Author Message
Sternenstaub
Smarty Rookie


Joined: 19 Jan 2005
Posts: 5

PostPosted: Fri Jan 28, 2005 11:13 am    Post subject: smarty und Session Reply with quote

Hallo Leute,

ich habe ein Problem mit Session.

Gehe ich auf "logout" dann komme ich wieder auf die Stratseite. Gehe ich wieder zurück, klappt das nicht...ok... klicke ich allerdings dann auch aktualisieren bin ich wieder auf der Seite Sad

Ich habe genau das selbe mal ohne Smarty gemacht und es funktioniert. Gibt es _mit_ Smarty etwas das ich beachten müsste? Bastel schon seit Stunden und finde keine Lösung Crying or Very sad
Back to top
View user's profile Send private message
LHD
Smarty Rookie


Joined: 04 Feb 2005
Posts: 8

PostPosted: Mon Feb 14, 2005 8:38 am    Post subject: Reply with quote

Ich habe das mit normalen Cookies und Serversession erledigt.
Im Cookie ist nur SessionID, in der Serversession sind die Daten, sollten eigentlich nicht manipuliert werden können.

1) Nehme die session.php von http://www.zend.com/zend/spotlight/code-gallery-wade8.php

2) Dein Formular ruft "login.php" auf.
login.php erzeugt KEINEN Output.

3) in login.php wird die "normale" Loginprozedur durchlaufen
(alle mit "true" als Rückgabewert)
a) Login Passowrd eingegeben
b) User mit Lo+Pw aus datenbank laden
c) sonstige Prüfung (z.B. eMail bestätigt.....)
d) dann "den User in die Session packen" [setDataInSession()]

Code:

function setDataInSession() {
   $arrUser['UserID'] = $UserID;
   $arrUser['User'] = $user;
   $arrUser['isLoggedIn'] = true;  // WICHTIG !!!!
   $_SESSION['myUser'] = serialize($arrUser);  // serialize nur für Arrays,
   return true;
}


der letzte Schritt auf login.php, wenn alles erfolgreich durchlaufen ist,
Code:

$location ="http://meineseite.tld/members/";
header("Location: ".$location);

den User auf Seiten für eingeloggte User weiterleiten.


Auf den Memberseiten überprüfen ob Session vorhanden und User eingeloggt ist.

Code:

function isUserLoggedIn() {
   $myUser = unserialize($_SESSION['myUser']);
   return $myUser['isLoggedIn'];
}


memberseite.php
Code:

if (isUserLoggedIn())  {
   // Alles Okay, User ist eingeloggt

} else {
   // Fehler: Du bist nicht eingeloggt

}


Beim Logout läuft dann alles umgekehrt ab:

logout.php ist auch eine Seite ohne Output.

Code:

function logout() {
   unset($_SESSION['myUser']);  // Serversession entfernen
        ....
        // "Gewaltsam" Sessiondaten entfernen vor Sessionablauf
        //  eigentlich nicht nötig da von session.php erledigt wird.
   $sql = "DELETE FROM sessions WHERE ses_id = '".session_id()."' ";
        .....(sonstiges Datenbankzeugs....)
    session_destroy();
   session_regenerate_id();
        $LocationLogout ="http://meineseite.tld/";
   header("Location: ".$LocationLogout);      
   }


Hat mich mehrere Tage gekostet das alles zu verstehen und zu begreifen, aber jetzt funktioniert es :-)

Lars
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: German All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP