有没有一种方法可以在PHP中启动持久性会话而无需放置会话cookie?是否还有其他方法可以跨页面维护会话,例如基于IP地址的解决方案?
我问的原因是,尽管大多数用户都启用了cookie,但我想看看是否有一种方法可以使禁用它的用户使用登录系统(即使我个人认为禁用cookie只是不必要的偏执狂)。
我认为要求您的用户启用Cookie并不过分。当人们完全关闭它们时,我觉得很愚蠢。
否则,您可以将其设置session.use_only_cookies
为“
0”,以强制将会话ID附加到PHP中的URL。但是,这种方法有一些缺点。主要是将状态保留在URL中,而不是Cookie标头。如果用户要复制并粘贴他们所在页面的URL,而其他人要单击它,则他们都将使用同一会话。
<?php
ini_set("session.use_cookies", 0);
ini_set("session.use_only_cookies", 0);
ini_set("session.use_trans_sid", 1);
ini_set("session.cache_limiter", "");
session_start();
今天我在skype上面试了一份PHP开发人员的工作,其中一个问题是关于Cookie和PHP会话。 问题是,如果用户浏览器中禁用Cookies,可以设置和读取、使用PHP会话吗? 我告诉他们不要,因为PHP会话默认取决于设置会话cookie。当PHP会话启动时,新的会话Cookie被设置为默认名称PHPSESSID,并且该Cookie保存该会话id的值,例如:ftu63d8al491s5gatuob
问题内容: 为什么如果我在www.example.com上创建cookie并在example.com上进行检查,为什么该cookie不存在?我打算只使用将非www重定向到www域。但是我该如何解决呢? 问题答案: 浏览器是这里的罪魁祸首,而不是PHP。它们按域存储,不知道这是特例。从他们的角度,并有不同的字符串,因此具有不同的安全策略。但是,您可以做一些事情。 设置cookie时,请使用(带前导点
问题内容: 我试图在不利用cookie的情况下在Spring Security中管理会话。原因是- 我们的应用程序显示在另一个域的iframe中,我们需要管理应用程序中的会话,而Safari限制了跨域Cookie的创建。(上下文:domainA.com在iframe中显示domainB.com。domainB.com设置了JSESSIONID cookie以利用domainB.com,但是由于用户
我在我的phorum服务器中遇到了一个奇怪的错误--似乎是随机的,一些用户将相互交换,并发现他们作为另一个人完全登录,可以完全访问另一个人的帐户。我自己也经历过一次这个bug,但不能重新创建它。 Phorum被配置为通过cookie跟踪会话,会话散列也存储在用户数据库中。我已经确认数据库完好无损,没有会话ID冲突发生。 您可以在这里看到Phorum的身份验证和会话管理的源代码,它相当简单。会话只能
问题内容: 在阅读了Internet中的文档和帖子后,我仍然无法 使用jMeter中的Cookie Manager 解决问题。我在响应标头中获得了sid ID,但未将其 存储在cookie管理器中。以下是我的测试计划和 connect.sid响应的屏幕 您能帮忙弄清楚出什么问题吗? 问题答案: 为了由JMeter(以及Web浏览器)进行处理,您的Cookie必须符合某些政策,即域和路径不应与当前U
问题内容: 我正在尝试正确注销管理员用户。这是我的功能: 基本上,一旦我对密码进行了身份验证,就将会话设置为有效(总共只有1个用户)。现在,当管理员点击注销时,我想销毁当前会话,并销毁cookie,以便他们不能只是使用浏览器中存储的会话cookie返回管理页面。但是我的代码不起作用。我点击注销,然后我可以直接导航回到管理页面。但是,如果我删除Cookie,则该功能非常完善。那么这里的cookie删