如果禁用cookie,如何进行工作zend框架会话?

时间:2012-05-29 12:04:24

标签: php zend-framework zend-session-namespace

我正在开始讨论

$sess = new Zend_Session_Namespace('MySession');

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

2 个答案:

答案 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/)插件插件