Cookies & Sessions
bär
- php
Hi
Ich bin gerade dabei ein Loginsystem mit Sessions und Cookies zu entwickeln.
NAchdem der User sich über das Formular angemeldet hat und die Logindaten mit denen der DB verglciehn worden sind und vorhanden waren, wird ein Cookie mit der Session ID gesetzt.
Wenn ich die Seite nun schließe und sie nach 30 Sekunden wieder aufrufe, kommt wieder das Formular und nicht wie gewünscht die Ausgabe von den Session Daten.
Was mache ich falsch?
Gruß, der bär
Code:
<?
mysql_connect("localhost","admin","");
mysql_select_db("db1");
session_start($sessid);
if(!isset($_SESSION['name'])&&!isset($_SESSION['passwort']))
{
if(!isset($_POST['name'])&&!isset($_POST['passwort']))
{
//HIER IST DAS FORMULAR ZUR ANMELDUNG EINGEBAUT
exit;
}
if(isset($_POST['name'])&&isset($_POST['passwort']))
{
$select=mysql_query("SELECT * FROM user WHERE name = '$name' AND passwort = MD5('$passwort')");
if (mysql_num_rows ($select) == 0)
{
echo "Login Fehlgeschlagen!<br><a href="login.php?act=login">Login</a>";
exit;
}
if (mysql_num_rows ($select) == 1)
{
$session_id=$sid;
$_SESSION['name']=$_POST['name'];
$_SESSION['passwort']=$_POST['passwort'];
setcookie("sessid",$sid,time()+3600);
}
}
}
echo $_SESSION['name'];
echo "<br>";
echo $_SESSION['passwort'];
?>
session_start($sessid);
wo kommt beim erneuten aufruf der seite $sessid her? meiner meinung nach müsstest du nur mit session_start() starten, dann wird automatisch die letzte session wiederhergestellt.
wenn die variable nicht gesetzt ist, oder nicht deiner alten session entspricht (was ich denke), wird eine neue session gestartet und der rest erklärt sich von selbst.
andi
Hi, ich hab jetzt session_start() drausgemacht und den cookie ganz rausgenommen und es funktioniert alles bestens. Allerdings versteh ich nicht wie der Server es nun schafft ohne Session Id die gleiche Session wieder aufzugreifen.
gruß, der bär