Probleme mit Sessions

F

Friedrich

Guest
Hallo,

für die Künstler und Galeristen auf Artou steht ja ein geschützer Bereich zur Verfügung. Wenn ich alleine war, hat es auch richtig geklappt. Ich konnte mich anmelden und meine Daten ändern (er hat also eine Session-Datei auf dem Server erstellt). Nun haben sich bereits zwei neue angemeldet. Jetzt werde ich manchmal rausgeworfen, eine Künstlerin kommt gar nicht mal so weit.

1. Muss im Browser was aktiviert sein, damit Session richtig funktioniert?

Das Skript in vereinfachter Form:


// Session_start wird bei jeder Seite aufgerufen am Anfang
session_start();

// Session_register soll man nicht benutzen, deswegen diese Methode
$_SESSION["artou"] = "$passwort";

// Frage, ob in der Session "artou" was drinne ist
if(empty($_SESSION["artou"]))
{
echo "Session nicht gesetzt.";
}
else
{
echo "Session gesetzt.";
}


Frage: Woher weiß der Browser oder Server, welche Session-Datei verwendet werden soll? Kann hier der Fehler liegen, dass er es nicht weiß und einfach in irgendeine Session-Datei greift und damit ein anderer angemeldeter Künstler in einen anderen Account schlüpfen kann?

// In einer anderen Datei wird die Session gelöscht
if(!empty($_SESSION['artou']))
{
session_destroy();
}


Frage: Welche Session-Datei löscht der jetzt? Löscht der alle? Alle angemeldeten Künstler werden dann rausgeschmissen und müssen sich erneut anmelden?

Friedrich
 
hmm...

das mit session_destroy() würd mich auch noch interessieren.
 
Hallo

QUOTE Frage: Woher weiß der Browser oder Server, welche Session-Datei verwendet werden soll? Kann hier der Fehler liegen, dass er es nicht weiß und einfach in irgendeine Session-Datei greift und damit ein anderer angemeldeter Künstler in einen anderen Account schlüpfen kann?

Mit session_start wird eine eindeutige SessionID generiert. Diese wird vom Server an den Browser übermittelt. Für die weiteren Anfragen an den Server wird vom Browser immer die SessionID mitgeliefert. Wichtig ist auch folgendes:

QUOTE session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.
(http://ch2.php.net/manual/en/function.session-start.php)

Ein anderer Künstler kann eben nicht auf eine Session des Kollegen zugreifen, weil er eine andere SessionID bekommen hat. (Er müsste sich schon das Cookie des Kollegen rüberkopieren....)


QUOTE Frage: Welche Session-Datei löscht der jetzt?
session_destroy löscht die aktuelle Session. Und nur diese.



QUOTE 1. Muss im Browser was aktiviert sein, damit Session richtig funktioniert?
Bin nicht 100% sicher, aber Cookies sollten akzeptiert werden. Sonst musst du die SessionID bei jedem Link anhängen.

hmm...Fragen beantwortet, aber Problem nciht gelöst.....hoffe, es hilft trotzdem irgendwie weiter

Gruss
Roger
 
Hallo Friedrich?

$_SESSION["artou"] = "$passwort";

Warum setzst du $passwort in Anführungszeichen?
 
Es wird natürlich nur die Session des Benutzers gelöscht, der die Seite mit dem destroy-Befehl aufruft...
Lies doch mal in php.net ein bisschen nach zum Thema sessions. Dort ist alles sehr genau beschrieben
wink.gif

Gruss
Kathrin
 
Danke für die Tipps, jedoch wusste ich dies schon aus den Informationsseiten im Internet, nur glauben wollte ich dies nicht, da manchmal einfach so anscheinend die Sessiondatei gelöscht wird und ich mich dann wieder neu anmelden muss.

Friedrich
 
Hallo,

das Problem besteht leider weiterhin. Wenn große Bilder übertragen werden, wird man danach aus dem Menü "geschmissen", da die Session-Datei nicht mehr existiert. Wird diese gelöscht, wenn große Datenmengen übertragen werden? Kann ich mir zwar so nicht vorstellen, aber was anderes fällt mir einfach nicht ein!

Friedrich
 
Zurück
Oben