Yankes Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 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
Gjest Slettet+6132 Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 (endret) 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 21. juni 2006 av Slettet+6132 Lenke til kommentar
Yankes Skrevet 21. juni 2006 Forfatter Del Skrevet 21. juni 2006 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
Jonhoo Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 Det er derfor du bruker cookies De er der helt til de går ut på dato eller brukeren sletter dem. Setter du datoen til uendelig så er de der for evig, altså "huskes" du. Lenke til kommentar
Yankes Skrevet 21. juni 2006 Forfatter Del Skrevet 21. juni 2006 Ok, men kan noen hjelpe meg litt på vei, så får jeg det sikkert til, bare kom med noe grunnleggende kode! Lenke til kommentar
Jonhoo Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 ta en titt på setcookie() funksjonen i PHP Lenke til kommentar
Gjest Slettet+6132 Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 (endret) $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 21. juni 2006 av Slettet+6132 Lenke til kommentar
Jonhoo Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 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 Lenke til kommentar
Gjest Slettet+6132 Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 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
Jonhoo Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 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 Skrevet 21. juni 2006 Del Skrevet 21. juni 2006 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå