Starten einer neuer Session geht nicht richtig :-/

Moin…

Ich hab ne index.html mit nem Formular bei dem User seinen Namen und Passwort eingibt, und das geht dann an ne index.php wo er das prüft und, wenn es erfolgreich war dann geht der user quasi in den internen Bereich. Dafür will ich ne Sessionvariable anlegen (Username) damit ich im weiteren Verlauf immer alles auf ihn beziehen kann.

In der index.php sieht das so aus


$Kundennummer = $_POST[„Kundennummer“]; $Passwort = $_POST[„Passwort“];
Session_start();
$_SESSION[‚Kundennummer‘];
$_SESSION[‚Passwort‘];
header("Location: http://localhost/Exzensior/Tausch/main.php?".strip_tags(SID));

?>

Wenn ich nun aber mit zwei usern her gehe dann scheint er beim zweiten User die Sessionvariablen nicht neu zu belegen ( hab sie mir mal in der gleiche php noch ausgene lassen) , sondern nutz die des ersten users (der hat sich zuerst eingeloggt). Wieso ?

Ich hab schon mit destroy ec. versucht NUr:

Wenn ich das am Anfang setzte dann sagt er beim ersten Aufruf der Seite, dass er keine Sesioon destroyen kann, weil ja noch keine da ist.

Wenn ich Sie am Ende mache…woher weiss ich, dass immer jeder User sich „ausloogt“ und nicht irgendwann das Fenster schließt ohne je an den punkt zu kommen wo das destroy stattfindet ?

Außerdem würde ich gern wissen wie ich denn in der main.php auf dei Session Variable richtig zugreife.

guck mal

> ....  
> $Kundennummer = $\_POST["Kundennummer"];   
> $Passwort = $\_POST["Passwort"];  
> session\_start();  
> $\_SESSION['Kundennummer'] **= $Kundennummer** ;  
> $\_SESSION['Passwort'] **= $Passwort** ;  
> header("Location: http://localhost/Exzensior/Tausch/main.php?".strip\_tags(SID));  
> ...  
> ?\>

so müsste das doch eher aussehen, oder?

Hallo !

$_SESSION[‚Kundennummer‘];
$_SESSION[‚Passwort‘];

…dieser Fehler ist schon im anderen Posting genannt, das so zu definieren (ohne Zuweisung) funktioniert nur unter wenigen PHP-Versionnen / Einstellungen

Wenn ich nun aber mit zwei usern her gehe dann scheint er beim
zweiten User die Sessionvariablen nicht neu zu belegen ( hab
sie mir mal in der gleiche php noch ausgene lassen) , sondern
nutz die des ersten users (der hat sich zuerst eingeloggt).
Wieso ?

Naja, session_start startet nicht etwa immer eine neue Session, sondern startet eine Session ODER nimmt die aktuelle Session wieder auf, macht sozusagen die Initialisierung der Session-Funktionalität.
Um wirklich eine neue Session zu starten (also die aktuelle Session zu verwerfen), zuerst session_start, danach session_destroy aufrufen.

Wenn ich das am Anfang setzte dann sagt er beim ersten Aufruf
der Seite, dass er keine Sesioon destroyen kann, weil ja noch
keine da ist.

session_start vergessen.

Wenn ich Sie am Ende mache…woher weiss ich, dass immer jeder
User sich „ausloogt“ und nicht irgendwann das Fenster schließt
ohne je an den punkt zu kommen wo das destroy stattfindet ?

Sessions haben eine maximale Laufzeit, der mit „session.gc_maxlifetime“ in der php.ini festgelegt wird. Wird in dieser Zeit keine neue Seite unter dieser Session aufgerufen, wird die Session zerstört.

Außerdem würde ich gern wissen wie ich denn in der main.php
auf dei Session Variable richtig zugreife.

session_start();
echo $_SESSION[‚Kundennummer‘];

session_start() muss an den Anfang jeder Datei, die Sessions benutzt (oder wo die SID weitergeben soll).

Alexander