Is there anyway to store users data such as userid, email, etc to be accessible from all pages of a website after they have logged in, but without using sessions or cookies?
For example:
class User { var $userid; var $username; var $email; .. methods.. }
after they login at login.php
$currentUser = new User($_POST['username'])
now, how do I access $currentUser from another page, such as index.php if I shouldn’t use sessions or cookies at all?
so that I could do the following in index.php:
if ($currentUser->userid > -1) { echo "you are logged in as: " . $currentUser->username; } else { echo "click here to login"; }
i asked a similar question before, here, but the answers didn’t fulfill my needs.
Advertisement
Answer
If you’re over-the-top gung-ho with regards to OOP and refuse to directly interact with sessions/cookies, I’d strongly suggest you simply encapsulate sessions instead of remaking them. Even something as simple as this:
//oopsess.php <?php class Session{ ... } session_start(); function getSession(){ //return the session if one exists if (isset($_SESSION['sessionObject'])) return $_SESSION['sessionObject']; //otherwise save and return a new one $_SESSION['sessionObject']=new Session(); return $_SESSION['sessionObject']; } ?>
Easily adaptable if you want to store the data clientside – in a cookie – instead of just storing the session id client side (which is what this does).
Edit: Also, teasing aside with regards to OOP, if your code is all very OOP, this is actually a genuinely good way to keep your code clean – not just a way to satisfy your OOP-hungry cravings as I implied above 😉