• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
current user data

#1
I like to load data from various tables that belong to a logged-in user and keep it as long as the user is logged in. I can do that in 2 ways.

1 SESSION
When a user login, I grab and store the user data in a session array, like $_SESSION['current_user']. Of course, I need to ensure that if the user data changes throughout the session, the session data has to change accordingly.

2 Grab data on every request
When a logged-in user requests any page, all user data is grabbed from each table and is stored in an array, like $current_user

Which performs best? What is best practice? Security issues?
Reply

#2
Sessions is the best option.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply

#3
(08-20-2019, 12:28 AM)muuucho Wrote: 1 SESSION
When a user login, I grab and store the user data in a session array, like $_SESSION['current_user']. Of course, I need to ensure that if the user data changes throughout the session, the session data has to change accordingly.

2 Grab data on every request
When a logged-in user requests any page, all user data is grabbed from each table and is stored in an array, like $current_user
3 Grab data only when you need it, and only the data you need, not everything. Do you really need all that on every request?
Test your translation files with Translation Tester
Reply

#4
(08-20-2019, 03:30 AM)InsiteFX Wrote: Sessions is the best option.

OK, I actually thought that grabbing from db was a good option. 
Will rewrite some code in the near future.  Smile
Reply

#5
(08-20-2019, 09:38 AM)includebeer Wrote:
(08-20-2019, 12:28 AM)muuucho Wrote: 1 SESSION
When a user login, I grab and store the user data in a session array, like $_SESSION['current_user']. Of course, I need to ensure that if the user data changes throughout the session, the session data has to change accordingly.

2 Grab data on every request
When a logged-in user requests any page, all user data is grabbed from each table and is stored in an array, like $current_user
3 Grab data only when you need it, and only the data you need, not everything. Do you really need all that on every request?

You are suggesting that if I don't need a lot of data for the current user, grabbing it on every request is a good option? 
Any idea when it is tipping over for sessions?
Reply

#6
(08-22-2019, 02:24 PM)muuucho Wrote:
(08-20-2019, 09:38 AM)includebeer Wrote: 3 Grab data only when you need it, and only the data you need, not everything. Do you really need all that on every request?

You are suggesting that if I don't need a lot of data for the current user, grabbing it on every request is a good option? 
Any idea when it is tipping over for sessions?

I don't know. You didn't say how much data you load and what you're doing with it. The session is probably the best option, but my point is, why load everything just in case you need it? The session may be faster, but it uses memory. So don't load data if you don't need it. If it's only the user profile and permissions, it's fine, you will need it at every request anyway.
Test your translation files with Translation Tester
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.