是否存储用户数据,如用户ID,电子邮件等,以便在网站登录后可以从网站的所有页面访问,但不使用会话或Cookie?
例如:
class User
{
var $userid;
var $username;
var $email;
.. methods..
}
登录 login.php
后$currentUser = new User($_POST['username'])
现在,如果我不应该使用会话或cookie,如何从其他页面访问$ currentUser,例如 index.php ?
这样我就可以在 index.php :
中执行以下操作if ($currentUser->userid > -1)
{
echo "you are logged in as: " . $currentUser->username;
}
else
{
echo "click here to login";
}
之前我问了一个类似的问题here,但答案并没有满足我的需要。
答案 0 :(得分:4)
如果你对OOP过分夸大并且拒绝直接与会话/ cookie交互,我强烈建议你简单地封装会话而不是重新构建它们。甚至像这样简单:
//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'];
}
?>
如果您想将数据客户端存储在cookie中,而不仅仅是存储会话ID客户端(这就是它的作用),那么很容易适应。
编辑:另外,考虑到OOP,如果你的代码都非常OOP,这实际上是一种保持代码清洁的真正好方法 - 不仅仅是满足你对OOP饥渴的渴望的一种方式;)
答案 1 :(得分:1)
答案 2 :(得分:0)
赛义德说“一个想法考虑哪个 我之前见过的是存储一个 会话ID作为cookie并保持 数据库中的会话。很酷的事情 关于这样做,它允许管理员 完整而轻松地控制会话。 另外,你可以实现整洁的东西 喜欢gmail的“退出其他会话” 特征。深思熟虑:)“
请注意,我们这样做并且效果很好。