[英]php login session login variables
我正在学习php并注册了一门课程。 我的用户登录信息显示如下。
我的问题是,登录时我必须在会话中选择我想要的所有字段吗? 我可以不只是使用选择电子邮件并拉出所有行或我必须选择登录时的所有行?
示例如果没有提取有关id = id的用户的所有信息,请将此uid = uid用于该会话?
$_SESSION['email'] = $email;
$_SESSION['uid'] = $row['uid'];
function login_user($email, $password)
{
$sql = "SELECT pwd, uid, user, birthdate FROM users WHERE email = '" . escape($email) . "' AND active = 1";
$result = query($sql);
if (row_count($result) == 1) {
$row = fetch_array($result);
$db_password = $row['pwd'];
if (password_verify($password, $db_password)) {
$_SESSION['email'] = $email;
$_SESSION['uid'] = $row['uid'];
$_SESSION['username'] = $row['username'];
$_SESSION['birthdate'] = $row['birthdate'];
return true;
} else {
return false;
}
return true;
} else {
return false;
}
}
决定在会话数据中放入什么,以及现在有效地归结为权衡 - 性能与存储空间。 显然,这些论点基本上与小项目无关,只会对大量用户,流量等产生影响。
首先,如果您的登录是基于会话的,通常情况下,PHP将在需要时加载所需的会话数据,即在请求中提供会话cookie时。 会话数据必须至少包含登录用户的用户名/ id。
为什么不在会话数据中加入更多内容? 每当用户登录时,将数据从数据库加载到会话中。
在这种情况下,您只在会话数据中保留id或username。 然后根据需要从数据库加载任何其他数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.