我在我的服务器上的单个域中托管了几个Facebook应用程序。同一个用户可能会在一个会话中访问两个或更多的应用程序。我如何确保来自一个应用程序的某些数据不会在另一个应用程序中结束?由于用户可能只需从应用程序导航,因此注销不是一种选择。如何在一台服务器上处理一个用户的多个PHP会话?
3
A
回答
8
如果您为每个应用程序使用不同的session_name()
,那么这些会话实际上是相互惰性的。
// Application 1
session_name("APP1");
session_start();
// Application 2
session_name("APP2");
session_start();
0
我能想到的将包括该人的会话数据使用的应用程序,如果你看到在用户的会话数据错误的会话,你破坏了会议的解决方案。
0
只是一个想法:也许你想为每个应用程序设置一个子域。这样cookies和会话就会自动完全分开,而不是依靠某个功能(这可能会很慢,正如一个人在session_name()
手动注释中指出的那样)。
此外,我相信单独的子域让您更安全地利用漏洞因为相同的原产地政策。 (对吧?)
+0
不是。取决于如何设置Cookie。通常它们都设置在父域中,因此来自site1.example.com的cookie仍然会看到来自site2.example.com的cookie –
0
通过为每个应用程序使用不同的键,您可以制作类似会话部分的内容。你只需要确保密钥的唯一性。每次你保存在适当的部分例如为:
//save the ids into db or configuration file after it's generated
$app1id = uniqid('fbApp');
$app2id = uniqid('fbApp');
//Save data for application 1
$_SESSION[$app1id] = array('app' => 'data');
//Save data for application 2
$_SESSION[$app2id] = array('app' => 'data');
相关问题
- 1. PHP会话处理多个服务器
- 2. 如何在同一台服务器上的多个域中维护PHP会话?
- 3. 如何管理多个服务器上的用户会话?
- 4. PHP笨 - 处理多个数据库在同一台服务器
- 5. Quickfix处理来自多个服务器的同一会话
- 6. 如何在一台服务器上创建多个客户端?
- 7. 会话在同一服务器上的多个域上共享
- 8. 多台服务器或一个服务器来处理来自多个客户端的请求
- 9. apache服务器如何处理会话?
- 10. 如何在一台服务器上监控多个Web项目?
- 11. 在php中处理多个会话
- 12. 在一台服务器上管理多个IP地址的多个域名
- 13. Ion_auth - 在一个会话多个用户
- 14. 在一个帐户上的多个用户:会话数据
- 15. 在同一台机器上管理Play框架服务器的多个实例的会话详细信息
- 16. 处理服务器上的多个用户文件
- 17. 一个用户的多个会话?
- 18. PHP在一台服务器上工作,但不在另一台服务器上
- 19. Grails/Spring rememberMe为同一个用户+会话并发处理多个浏览器
- 20. 如何在f5负载均衡器的情况下跟踪会话,如何在同一个Web服务器上处理一个客户端的所有请求?
- 21. 在Node.js中,如何让一台服务器在另一台服务器上调用一个函数?
- 22. PHP:如何将一个大文件从一台服务器上传到另一台服务器?
- 23. 在同一台机器上的多个TcpClients作为服务器
- 24. 上下文处理器,传递一个不存在的会话
- 25. 一个DSO处理器服务器
- 26. php在一个页面上处理多个表单处理
- 27. 在一台专用服务器上运行多个nginx ubuntu
- 28. 如何在同一台服务器上使用两个ssh
- 29. PHP - opendir在另一台服务器上
- 30. 如何从另一台服务器运行一个php文件?
尼斯一些数据会保存。我不知道你可以设置不同的会话名称。我猜他们是与每个指定的应用程序绑定的? – chustar
如果每个应用程序都有自己的会话名称,那么是的。 session_name基本上最终成为会话ID存储的cookie的名称。因此,如果每个应用都有其自己的唯一会话名称,则用户将会为每个应用获得一个cookie,并且每个会话都将是独立的彼此的。另一种方法是在会话中使用子键'$ _SESSION ['app1'] [...]','$ _SESSION ['app2'] [...]'等等...... –