我正在开始讨论
$sess = new Zend_Session_Namespace('MySession');
并且会话工作正常,但在浏览器中禁用cookies
时出现问题。我有一个很大的应用,
那么什么是使其适用于无cookie环境的最佳解决方案。
答案 0 :(得分:1)
您可以将session.use_only_cookies设置为“0”,并将会话ID附加到代码中的URL,这样每个链接或重定向都会在URL中附加“session_id = 4b5fe6a4019a8cd7fc4326664e9e03ae”。
这种方法有很多问题,最大的问题是,如果用户决定共享一个URL,让我们说在Facebook中,他/她会从浏览器中复制整个网址(包括会话ID)和点击该网址的所有人链接将捕获用户的会话。
查看this。
答案 1 :(得分:1)
您可以在登录页面上显示需要cookie的警告,而不是支持cookie少的浏览器。许多网络应用程序强迫您最近启用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)&amp; noty(http://needim.github.com/noty/)插件插件