jeg ville gemme brugernavn og kode i en cookie som to hashes, og så bruge det til at logge ind med.
ellers en token løsning, lige hurtigt smidt lidt php sammen her, sikkert et par små fejl, men du kan se idéen, kan selvf laves på andre måder også.
(bare ik super optimalt hvis man har dynamisk ip eller bruger sin laptop fra flere netværk af.)
- //login:
- if(isset($_POST["doLogin"])){
- $time = mktime();
- $ip = isset($_SERVER['HTTP_X_FORWARD_FOR']) ? $_SERVER['HTTP_X_FORWARD_FOR'] : $_SERVER['REMOTE_ADDR'];
- $token = sha1("rand_lalala_".$time.$ip);
- setcookie("login", "token=$token", $time+9000, "/");
- mysql_query("INSERT INTO x (`token`, `ip`, `time`) VALUES ('$token', '$ip', '$time')");
- }
-
- //logout:
- setcookie("login", "exp=true", time()-3600, "/");
-
- //auto login:
- if(!isset($_SESSION["login"]) && isset($_COOKIE["login"])){
- $ip = isset($_SERVER['HTTP_X_FORWARD_FOR']) ? $_SERVER['HTTP_X_FORWARD_FOR'] : $_SERVER['REMOTE_ADDR'];
- $token = "";
- parse_str($_COOKIE["login"]);
- $login = mysql_query("SELECT time FROM x WHERE `ip`='$ip' && `token`='$token' LIMIT 1");
- if(mysql_num_rows($login) == 1){
- //set login = true
- }
- }