Hej
Jag snickrar på ett inloggningssystem enligt följande:
(username och password kommer från ett formulär, $passwords är för närvarande en associativ array med loginnamn och lösenord, de kommer att bli placerad i en mysql-databas så småningom.)
Kod:
<?php
if ($passwords[$_POST["username"]] == $_POST["password"])
{
$hemligKod = "banan";
$tid = time() + 3600;
$hash = md5($_POST["username"] . $tid . $hemligKod);
SetCookie("username", $_POST["username"], time() + 3600, "/", "", 0);
SetCookie("tid", $tid, time() + 3600, "/", "", 0);
SetCookie("hash", $hash, time() + 3600, "/", "", 0);
?>
//Rätt inloggning...
<?php
}
else
{
?>
Felaktig inloggning...
<?php
}
?>
//Sedan på alla skyddade sidor finns följande verifiering
Kod:
<?php
$hemligKod = "banan";
if (($tid < time()) || md5($username . $tid . $hemligKod) != $hash)
{
//Ej godkänd inloggning.
header("Location: loginform.php");
exit;
}
else
{
?>
//Godkänd inloggning.
<?php
}
?>
Problemet är att mina cookies inte verkar sättas som de ska, därav funkar inte verifieringen på de skyddade sidorna. När jag tittar i min cookies-katalog så finns bara den sista, alltså hash-cookien.
Finns det någon som kan se vad jag missat eller gjort fel, man är ju kraftigt hemmablind när det gäller sånt här.
p.s. Denna fråga har jag även lagt in på idg.se och phpportalen.net d.s.