我有一个 login.php 并在用户的电子邮件和密码匹配时创建一个 session ,然后我将创建 SESSION 变量以供进一步使用
<?php
require_once '../php_includes/db_connects.php';
require_once '../php_includes/core_includes.php';
if(isset($_POST['email']) && isset($_POST['pasw'])){
$e=$mysqli->real_escape_string(htmlentities($_POST['email']));
$p=md5($mysqli->real_escape_string(htmlentities($_POST['pasw'])));
$result=$mysqli->query("SELECT * FROM `user_info` WHERE `email`='$e' AND `password`='$p' LIMIT 1");
$result->num_rows;
if($result->num_rows ==1){
while($obj=$result->fetch_object())
{
$_SESSION['id']=$obj->id;
$_SESSION['firstname']=$obj->firstname;
$_SESSION['lastname']=$obj->lastname;
$_SESSION['email']=$obj->email;
$_SESSION['college']=$obj->college;
$_SESSION['profile_pic']=$obj->profile_pic;
}
}
}
?>
最好保留大量 session 变量来保存登录用户的基本信息,或者每次使用时只从数据库中检索这些信息?就像我需要使用名字 10 次那么我就必须从数据库中获取信息 10 次?
最佳答案
我喜欢使用 $_SESSION
来避免反复拉取数据的麻烦。由于您必须在登录时提取用户记录,因此最好让它提取其他数据,然后将其粘贴到 session 变量中。
不过,我不会使用 while
进行登录。我希望您的系统足够智能,只允许对给定的一组凭据进行一次身份验证。
关于php - 我是否应该为登录用户设置很多 SESSION 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900708/