由于我正在构建一个简单的游戏,因此即使他们离开,我也需要用户保持良好状态。出于安全原因,最好将cookie存储在我自己的服务器上,以便用户无法更改它们。这可能吗?
我将所有内容存储在会话变量中,如果用户处于战斗中,如果用户正在做一些耗时的事情等等。他们无法访问我网站上的其他点,直到完成上一个任务为止!这就是为什么我需要存储在会话cookie中的这些信息!
如果这是不可能的,我想我只需将这些东西存储在我的数据库中,但那将是我手上的大量额外数据库操作......
我甚至可以将这些数据保存在cookie中,这样当用户离开并返回时,会话仍然会将变量设置为以前的数据吗?
答案 0 :(得分:4)
根据定义,Cookie是客户端。因此,要以面值回答您的问题,您无法将它们存储在服务器上。
但是,您可以在服务器上存储会话信息。如果你需要它比典型的会话持续更长时间,数据库(我害怕)将是最好的选择。
答案 1 :(得分:1)
这是不可能的。会话cookie的想法是在浏览器中设置一个唯一的会话ID,以便在后端识别他,在那里存储会话数据(就像你提到的变量一样)。有关其中的一些基础知识,请参阅this stackoverflow问题。
更新:关于“会话中存储的数据有多长时间?”
这是给你的。您可以根据需要设置会话超时,然后销毁会话。通常情况下,这可能是几分钟到30天之间的所有事情。在此期间之后,您没有看到具有特定会话ID的用户,会话将被删除。如果用户返回,则会话到期的时间再次从零开始。
答案 2 :(得分:0)
如果用户尚未清除其Cookie且未过期,则会话将从您离开的位置进行拾取(同时假设未在/ tmp中清除会话)。否则它永远不应该是。他们继续前进。他们改变了,不是吗?
答案 3 :(得分:0)
由于我正在构建一个简单的游戏,我需要用户即使在他们离开时也能保持登录状态
我认为这句话没有逻辑 如果用户离开,则不存在会话。
你可能还需要别的东西。