我在我的网站上使用Rails 3。我的网站用户阻止我的网站在浏览器中存储cookie数据。
我的网站是公共部分,用户无需登录即可访问该网站。在那里,我需要暂时在session []中存储一些信息,直到下一个请求。
由于用户已禁用我网站的Cookie,因此我选择:active_record_store作为:session_store。即使这样做,我也无法从会话[]
成功存储和检索值Cart::Application.config.session_store :active_record_store, :key => '_cart_session', :domain => :all
在这些情况下,我该怎么做才能在session []中存储值。请帮忙。
答案 0 :(得分:2)
如果禁用了cookie,则无法使用会话,因为会话ID是使用cookie传输的。
您可以尝试以其他方式传输会话ID - 例如,在PHP中,每个表单和链接都附加一个参数:PHPSESSIONID
。您可以使用相同的技术,并使您的链接看起来像这样:
<a href="/users/1?session_id=12345">
Rails will not allow you to use sessions without cookies,但我确信自己编写它不会太难。请务必考虑会话ID披露的安全隐患!
如果您对PHP处理会话的方式感兴趣,您可能希望看到PHP session documentation和两个问题:“How do PHP sessions work when cookies are disabled?”和“{ {3}}“
答案 1 :(得分:0)
你可以
为每个用户创建唯一代码,并修改所有链接和表单以包含它。
将用户数据存储在数据库中以及用于个性化的唯一代码。
您无法为每个IP地址分配唯一代码,因为许多用户使用相同的IP地址,或者他们的IP地址可能会频繁更改。