存储 cookie 的方法
// 生成一个随机数
$key = rand(0, 65535);
// 然后把 $key 存起来,每个用户都不同的
//①把登录用户的用户名存入 cookie 中 键值对如下
setcookie(‘username’, $username, xxx);
//②把 $ke 存入 cookie 中 键值对如下
setcookie(‘key’, $key, xxx);
//③把 用户名 + 随机数 $key+ 用户端 IP+ 用户使用的浏览器,操作系统等信息 拼接成一串字符串,然后通过 sha1(哈希算法加密,不可逆加密算法),然后以如下格式存入 cookie 中
setcookie(‘sig’, sha1($username . $key . $_SERVER[‘REMOTE_ADDR’] . $_SERVER[‘HTTP_USER_AGENT’]), xxx);
验证的话:
$logged = false;
// 在 cookie 中读取用户名
$key = $_COOKIE[‘username’];
// 在 cookie 中读取对应的 $key 值
$key = $_COOKIE[‘key’];
// 判断 cookie 中 的 sig 字符串与当前生成的 sha1 字符串是否一致,一致的话则代表是同一用户,则允许该用户自动登录
if (sha1($_COOKIE['username'] . $key . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']) == $_COOKIE['sig']) {$logged = true;}