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.

258 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)