Cookies PHP

3 php cookies

我如何"内置"此脚本的自动登录?

if (isset($_POST['login'])) {
$query = mysql_query("
          SELECT * FROM users 
          WHERE user_name = '".mysql_real_escape_string($_POST['username'])."' 
      AND user_password = '".mysql_real_escape_string($_POST['password'])."'
");

/* wrong login information? terminate the script */
if (!mysql_num_rows($query)){
header("Location: ./");
exit();
}

/* set session with unique index */
$_SESSION['id'] = mysql_result($query, 0, 'user_id');
mysql_query("UPDATE users SET user_online = '1' WHERE user_id = '{$_SESSION['id']}'");
header("Location: ./");
exit;
}

Sas*_*sha 6

首先,一些建议:

  1. 您应该将密码存储为盐渍哈希,而不是明文.
  2. 您可能希望更改一般身份验证的方式.选择密码可能是个好主意(不管怎样也不要选择"Select*"),并将其与用户输入的密码的盐渍哈希值进行比较.

现在,你问,如果我理解正确,如何让用户登录.基本的想法是你需要存储一个cookie,其中包含唯一标识用户的东西(但要确保它不是容易被劫持的东西) - 所以把它变成一个非常长的字符串,比如SHA1哈希或其他东西.)在cookie上设置一个远离的过期日期以保持用户登录.

以下是用于在PHP中设置cookie的函数.

然后,当您加载页面时,您可以检查该cookie是否存在.如果cookie存在,并且用户没有SESSION变量,则可以为其分配一个.