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 😉