Problem med cookies i inloggningsfunktion.

PHP

0 svar · 185 visningar · startad av anteman

Medlem sedan juni 20021 inlägg
Trådstart#1

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.

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)