是否可以同时为网站的所有用户提供相同的$ _SESSION?
答案 0 :(得分:7)
我用以下方式解释了你的问题:
是否可以同时为网站的所有用户提供相同的[州]?
是的,共享状态通常存储在数据库中,但状态也可能存储在本地文件系统中。
使用$_SESSION
是为了保存 单 用户的状态。如果您滥用该工具,则会创建一个不安全的系统。
答案 1 :(得分:1)
如果没有为一个巨大的安全漏洞打开您的网站,就无法进行全球会议。
相反,让我们看看你想要做什么,这是抓取数据,同时避免每页查询。
1)将值写入文件然后在每个请求中读取它是一个选项。默认情况下,会话存储在服务器上的文件中,因此它具有与会话相同的速度。
2)将其存储在缓存中,例如APC,Memcache,Redis。
请记住这些是缓存的值 - 您仍然需要定期更新它们。您必须使用cron作业或让客户端更新它们。但是当缓存过期并且大量客户端试图立即更新缓存时,您会怎么做?这被称为狗屎效应,这是值得思考的问题。
或者您只需编写SQL查询并在每个页面执行它并保持简单。你为什么不想这样做?您是否对代码进行了分析并确定它是一个实际问题?在它成为已知问题之前担心这是浪费时间。
答案 2 :(得分:1)
我想做以下事情 if($ _ SESSION ['new_posts'] + 60> time())echo“有新帖子 论坛!“;我不想使用mysql 为此。
简单快捷的方法
在您发布的每个新帖子上:
//will write an empty file or just update modification time
touch ('new_posts.txt');
然后:
if(filemtime('new_posts.txt') + 60 > time()) { ... }