Avatar billede encorez Nybegynder
20. juni 2006 - 20:30 Der er 6 kommentarer og
1 løsning

Forlænge session

Jeg har to spørgsmål lidt uafhængig af hinanden.

Intro: Jeg har en hjemmeside i PHP hvor jeg logger ind med et brugernavn og password som tjekkes i en mysql db. Er det korrekt bliver der sat en session-variable. På alle mine sider er der i toppen sat et tjek ind, der kontroller at denne session-variable er sat ellers får man ikke vist siden. Det synes jeg er god nok måde.

1. Sådan en session-variable udløber jo åbenbart efter et stykke tid, så hvis jeg ikke har brugt min hjemmeside i et stykke tid efter at have logget ind, så skal jeg logge ind igen. Så hvordan forlænger man sådan en så den først udløber efter flere timer?

2. Jeg har nogle få computere (privat og arbejde), som jeg bruger meget og som jeg stort set er den eneste der bruger. På dem vil jeg egentlig gerne undgå at skulle logge ind.
Hvordan gør man det smartest? Med cookies, Mac adressen (hvis man kan tjekket den), login brugernavnet i windows (den er måske ikke god), IP duer ikke pga. arbejde, computernavn evt.???
Hvad synes I?

Mvh. Simon
Avatar billede viper_killerguy Nybegynder
20. juni 2006 - 20:46 #1
en god guide til at lave et sikkert loginsystem der bruger mange forskellige ting sammen er http://www.devshed.com/c/a/PHP/Creating-a-Secure-PHP-Login-Script/

men du kan også bare gøre det simpelt og lave en lille cookie som den checker på, det burde kunne klares ud fra diverse simple php cookie tutorials som kan googles.
Avatar billede hjochums Nybegynder
20. juni 2006 - 21:46 #2
Ja, brug en cookie, hvor du gemmer en md5 værdi som er uniqe pr bruger login.

MD5 kunne være id + login + 'tilfældig tekst"

Når cookien så hentes ind i PHP via $_COOKIE kan du lave en SQL:

SELECT * FROM user WHERE md5_key = '{$_COOKIE['mincookie']}'

md5_key værdien opdateres evt. ved oprettelse eller ved normal login (Der hvor cookien også laves).
Avatar billede encorez Nybegynder
20. juni 2006 - 22:41 #3
Det bliver vist en cookie. Uden at skulle til at google mig frem til hvordan man laver sådan en og til at læse de første 10 metoder og vejledninger til det, hvorefter jeg skal afgøre hvordan jeg vil gøre, så vil jeg bare gerne have jer til at fortælle mig hvor det gøre rimelig enkelt. Gøres det i PHP eller udelukkende i noget javescript??Giv mig venligst et kodeeksempel på hvordan jeg laver en cookie når jeg sidder ved en computer og f.eks. trykker på en knap, der skal oprette en cookie til denne pc.

Noget ide omkring udløb af sådan en session?
Avatar billede xtr0 Nybegynder
21. juni 2006 - 00:52 #4
hjochums >
Jeg bryder mig ikke om at skulle lave sådanne cookies, endvidere baserer sessions sig på cookies så det er det samme.

For at ændre udløb af sessions kan du kigge her:
http://uk.php.net/manual/en/function.session-cache-expire.php

Du laver en cookie i PHP ved at kigge her:
http://uk.php.net/manual/en/function.setcookie.php

Eller sådan her:
setcookie('CookieNavn', 'Coookie værdi', time()+3600);  /* Udløber 3600 sekunder fra nu */
Avatar billede xtr0 Nybegynder
21. juni 2006 - 00:52 #5
Og et svar :)
Avatar billede encorez Nybegynder
22. juni 2006 - 17:34 #6
xtr0 -> Det ser jo okay enkel ud. Dog er jeg uklar på hvad forskellen er på session_cache_limiter og session_cache_expire. Kan du kort forklarem det?

Hvis du ikke bryder dig om hjochums' forslag til at lave en cookie med en værdi som man kan tjekke på, så siden logger automatisk ind, hvordan vil du så gøre det?
Avatar billede xtr0 Nybegynder
25. juni 2006 - 01:01 #7
Basere det på sessions, og da sessions baserer sig på cookies er det reelt nok det samme, det er bare PHP der står for det og ikke browseren og dit script.

session_cache_limiter -> Styrer hvilke metoder sessionsne kører på, (none/nocache/private/private_no_expire/public)

session_cache_expire -> bestemmer hvor lang tid der går før en session "udløber" og man bliver nød til at opdatere den (i et brugersystem gør du det ved at logge ind igen).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester