webForumDet fria alternativet

Logga in med cookies ??

PHPur PHP

9 svar · 323 visningar · startad av donnex

Medlem sedan feb. 20027 inlägg
Frågan#1

Nån som har nån sida som beskriver hur det här med cookies fungerar ??

Jag har kollat lite på php.net men fattar inte riktigt hur jag skall göra. Vill bara ha två funkrioner. En som kollar om lösenordet är rätt, för det räcker med lösenord för att logga in som admin. Användarnamn vill jag inte ha. Sen så skall den skapa en cookie som finns kvar under hela tiden browsern är igång och förstörs när browsern stängs. Skall även ha en logut funktion. Nån som kan ge mig lite kodexempel eller nån sida som visar detta ??

Medlem sedan jan. 20007 697 inlägg
#2

En ny medlem! Trevligt... :)

För att sätta en cookie som raderas när webläsaren stängs så använder skriver du följande:

loginform.php

if($HTTP_POST_VARS['password'] == 'ditt_losenord') {
    setcookie("kaknamn", 1);
}

login.php

if($HTTP_COOKIE_VARS['kaknamn'] == 1) {
    echo "VISA DETTA HEMLIGA MEDDELANDE!\n<br><br>\n";
    echo "<a href='logout.php'>Logga ut</a>\n<br><br>\n";
} else {
    echo "DET HÄR FÅR DU INTE SE!";
}

logout.php

if($HTTP_COOKIE_VARS['kaknamn'] == 1)
    setcookie("kaknamn", 0);

Detta bör fungera i stora drag, du kommer självklart få göra vissa småförändringar. :)

Medlem sedan feb. 20027 inlägg
#3

Ok tack för svaret. Skall testa detta.

Går det att få typ så att cookin tas bort automatiskt efter 20 min inaktivitet eller liknande ? Ifall nån som är inloggad som admin går ifrån dator så kan nästa komma 1 timme senare och så har han tillgång till dom sidorna, det är inte så lyckat.

Medlem sedan jan. 20007 697 inlägg
#4

Uppdatera cookien på varje sida som du visar genom att sätta den igen till samma värde fast med en tidsbegränsning.
Fast det är ju klart... sätter du en tidsstämpel så försvinner den ju inte när du stänger webläsaren. :OO

Jaja, så här sätter du en tidsstämpel i alla fall.

setcookie("kaknamn", 1, 60*20);

Eftersom tiden mäts i sekunder så får du sätta 60*20 vilket motsvarar 20 minuter.

Medlem sedan maj 20003 652 inlägg
#5

Är det inte bättre att använda sessions då?

------------------
Ja, det är tack gode gud Viking!

Medlem sedan jan. 20007 697 inlägg
#6

Jo, självklart är det bättre med sessions.
Kolla här för mer info angående sessions.

Medlem sedan feb. 20027 inlägg
#7

Men om man har lite fler användare då ?? Säg att man har en 100-200 användare inne sammtidigt. Då är inte sessions en så bra lösning eller ??

Medlem sedan mars 20007 896 inlägg
#8

Jodå, sessions klarar så många användare... Servern blir inte så mycket segare av att det endast är 100-200 inne samtidigt.

------------------
SPiN, bjorne.w@telia.com

Medlem sedan feb. 20027 inlägg
#9

men om man har en site med 20000 anvädare då ??? =)

Medlem sedan mars 20007 896 inlägg
#10

Har du en bra server så... ;)

139 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)