Gå til innhold

"Husk Meg" - Funksjon


Anbefalte innlegg

Hvordan kan jeg få laget en "Husk Meg" - funksjon?

Eller jeg vet hvordan jeg kan lage det, men jeg vet ikke hva som jeg kan hente ut fra hver enkelt datamaskin som er spesielt for den maskinen og er det samme hver gang uansett hvor mange ganger maskinen blir slått på og av!

 

Jeg har to eksempler, men ingen av dem funker, for de endres hver gang maskinen slås på og av!

 

$ip = $_SERVER["REMOTE_ADDR"]; // Viser IP
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']); // Viser HOST

 

Noen som har noe anna forslag til noe som er unikt som jeg kan hente ut fra hver PC?

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+6132

De fleste "husk meg" virker enten med bruk av sessions eller vanlige cookies. Det hele er egentlig veldig simpelt, ved en vanlig innlogging setter du at session eller cookies skal vare i feks 2 timer, mens om personen merker av for "husk meg" så settes sessionen til "uendelig" tid.

Endret av Slettet+6132
Lenke til kommentar

Jammen om en person lukker nettleseren eller skrur av datamaskinen så blir vel hvertfall sessionen slettet, har ikke vært så mye borti cookies, med...

Sessions ligger vel ikke på PC'en hele tiden, med mindre de avsluttes da!

Lenke til kommentar
Gjest Slettet+6132

$session_expire = 604800;  // Session will last a week
ini_set("session.cookie_lifetime",$session_expire);// Set the cookie lifetime
session_save_path("sessions");  // Saves sessions to directory "sessions"
session_name("admsess");  // Sets the name of the session cookie
session_start();  // Starts session
setcookie(session_name(), session_id(), time()+$session_expire, '/');  // Fixes cookie timeout	

 

Det er koden min, der varer session og session cookie i en uke. Så for å få en "husk meg"-funksjon trenger du egentlig bare sette $session_expire etter om brukeren skal huskes i 30 min eller evig tid ;)

 

EDIT: Jeg bruker både ini_set og setcookie fordi det noen ganger skjedde merkelige ting med cookien, noen ganger forsvant den før en uke var omme.

Endret av Slettet+6132
Lenke til kommentar
Gjest Slettet+6132
Problemet med den er at session highjacking er rimelig enkelt.. Ville kanskje lagt inn brukernavn og en kryptert versjon av passordet istedenfor så du kan verifisere brukeren hver gang :)

 

Med bare den koden er det lett ja, men senere i koden min har jeg også:

 

function auth()
{
if(!empty($_SESSION['username']))
{
 if($_SESSION['secret']  == md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']))
 {
 	return true;
 }
 else
 {
 	return false;
 }
}
else
{
 return false;
}
}

 

:)

Lenke til kommentar

Joda, men den bruker igjen bare $_SESSION..

 

Hva gjør du hvis noen kommer med sessionid i cookien?

Bruker du session_id($_COOKIE['sid']) og så kjører det over?

Det vil da ikke funke, ettersom $_SESSION tømmes..

Alternativet er at du henter det rett ut fra en database ved å querye den med:

"SELECT * FROM sessiontable WHERE session_id = '".$_COOKIE['id']."'"

eller noe tilsvarende.. Og da kan man igjen bruke session hijacking..

 

eller er jeg helt på viddene? ^^

Lenke til kommentar
Gjest Slettet+6132
Joda, men den bruker igjen bare $_SESSION..

Hva gjør du hvis noen kommer med sessionid i cookien?

Jeg har bare en cookie, og det er sessioniden. Det nytter ikke å endre sessioniden hvis ikke browser og ip for den sessionen stemmer ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...