0

我开始与

$sess = new Zend_Session_Namespace('MySession');

并且会话工作正常,但是cookies在浏览器中禁用时会出现问题。我有一个很大的应用程序,那么让它在无 cookie 环境中工作的最佳解决方案是什么。

4

2 回答 2

1

您可以将 session.use_only_cookies 设置为“0”并将会话 ID 附加到代码中的 URL,因此每个链接或重定向都会在 URL 中附加类似于“session_id=4b5fe6a4019a8cd7fc4326664e9e03ae”的内容。

这种方法有很多问题,最大的一个问题是,如果用户决定共享一个 URL,比如说在 Facebook 中,他/她会从浏览器中复制整个 url(包括会话 ID),并且单击该链接的每个人都会捕获用户的会话。

看看这个

于 2012-05-29T14:33:40.163 回答
1

您可以在登录页面上显示需要 cookie 的警告,而不是支持无 cookie 的浏览器。如今,许多 Web 应用程序强制您启用 cookie。

// make sure cookies are enabled
$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') != 'cookie_value') {
    noty({"text":"Cookies must be enabled to log in. <a href='http://support.google.com/accounts/bin/answer.py?hl=en&answer=61416' class='noty_link'>Click here to learn how to enable cookies.</a>","layout":"top","type":"error","textAlign":"center","easing":"swing","animateOpen":{"height":"toggle"},"speed":500,"closable":false, "closeOnSelfOver":false, "timeout":"", "closeOnSelfClick":false});
}

此代码片段使用 jquery.cookie.js (https://github.com/carhartl/jquery-cookie) & noty (http://needim.github.com/noty/) 插件插件

于 2012-05-29T14:40:22.717 回答