PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   session überprüfen... (http://www.selfphp.de/forum/showthread.php?t=1418)

Xantos 17.05.2002 17:01:51

session überprüfen...
 
Hi...

habe bei mir eine Session angelegt, ich übergebe der session_register variablen aus einem anmeldeformular, das klappt auch alles... da ich aber auf jeder Seite session _start(); stehen habe, bekommt jeder eine session, wenn auch die Session des "unangemeldeten" leer ist...

Ich trage über die session , usernamen und passwort durch die Seiten... wie kann ich es nun schreiben das meinetwegen ein angemeldeter User der das passwort und den Namen in der session register hat, was anderes sieht als einer der nicht angemeldet ist und auch keine passwot und namen in der session register drin hat...?!


gibt es sowas wie if(session_register($bla) ...?

Ich hoffe es ist verständlich, und wenn nicht, dann sagt es einfach, dann versuche ich es besser zu formulieren... :)




Danke für eure Hilfe... :)

Dago 17.05.2002 17:18:20

Tja, also ganz ohne Tricks wird das nicht klappen, da er den "Session-Apparat" erst mit session_start() oder session_register() inizialisiert...

Erstmal die Frage: Wen stört's dass ein paar 0-Byte Dateien mehr auf dem Server liegen? Die werden nach standartmäßig 24 Minuten eh wieder gelöscht.

Du könntest eine Datei anlegen, in der die User-IP und die Session-ID nach dem Absenden des Login-Formulars gespeichert wird. Und dann fragst du auf jeder Seite diese Datei ab, ob die IP eine Session registriert hat... Das klappt dann aber
1. nicht mit mehreren Usern hinter einer IP und
2. kostet es garantiert mehr Rechenzeit, als den Server eine 0-Byte-Datei anlegen zu lassen.

Aber vielleicht gibt es ja doch eine Möglichkeit, von der ich nix weiß :-)

|Coding 17.05.2002 17:19:59

hmmm,

ich kenn mich zwar nicht gut mit sessions aus, aber ich würde dir empfehlen das ganze mit cookies zumachen, wenn es nur um einen login geht, da das um einiges einfacher ist.

Nev 17.05.2002 21:42:08

Hi @ll

Wenn ich es richtig verstanden habe,
wenn ein User angemeldet ist, sieht er A
wenn er nicht angemeldet ist sieht er B

Das könntest du so lösen:

PHP-Code:

<?
    $sess_userID = "";
    session_start();
    
    if ($sess_userID)
    {
        // Ausgabe für regist-User
    }
    else
    {
        // Ausgabe für unregist-User
    }
?>

Erläuterung:
In der Session sind die Variablen definiert, wenn du nun zuerst die Session-Variablen leerst und danach die Session erst startest, werden die Session-Variablen mit den gesetzten Werten überschrieben.

Wenn dann die Session-Variable Werte enthält, weisst du ob du das der User registriert ist.

Genereller Tip:
Ich würde die Session-Variablen gesondert benennen.
-> $sess_userID

@Xantos
Ich finde es ned gut das du den Namen und Passwort in der Session mitführst.
Besser wäre es wenn du die UserID mitnimmst.

Das Problem welches du hast:
Wenn der User mehrere Fenster offen hat und in einem sein Passwort ändert, kann er ab dem Zeitpunkt ned mehr weiterarbeiten.
da er dann seine Session-Werte anders sind als die gespeicherten.

Xantos 21.05.2002 11:54:50

Hi...

habe es hinbekommen... :)

danke für eure antworten, ich werde das mit der User_id so machen, denn das mit dem Passwort habe ich mir noch gar nicht überlegt... :)

dankeschön..


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:53:40 Uhr.

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