webForumDet fria alternativet

Problem med cookies i inloggningsfunktion.

PHP

0 svar · 181 visningar · startad av anteman

Medlem sedan juni 20021 inlägg
Frågan#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.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)