php - 我是否应该为登录用户设置很多 SESSION 变量?

标签 php mysql session

我有一个 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/

相关文章:

php - 安全地维护 PHP 中的用户 session

php - 与开始标记和结束标记匹配的正则表达式作为新行

mysql - mysql查询中的多个条件语句

java - 无法在 linux 中从 java 调用 mysqldump

PHP:无意的多维数组而不是一维

java - 在 Google App Engine for Java 的子域之间共享当前用户数据

javascript - ngStorage AngularJS 从 sessionStorage 读取由另一个库保存的内容

php - MySQL 查询 - 不等于未显示正确的数据

php - 具有 session 值的绘画表

php - 为什么 PHP 不使用其默认库中的对象?