特定客户的Magento会议

时间:2013-12-25 23:36:11

标签: php magento session e-commerce magento-1.8

处理Localhost。 我想为每个特定客户存储会话值。

当我将我的价值存储在Mage::getSingleton('core/session')->setMyVal('something')时,所有客户都会显示相同的值。当我看到这个时,我很害怕...就像客户会话被劫持一样。我希望会议成为私人的foreach客户。

当我使用Mage::getSingleton('customer/session')->setMyVal('something')时,我使用客户帐户得到了这个“东西”然后登出并与不同的客户登录,我又看到了同样的“东西”......

例如,如果我想存储“登录日期时间”,那么它当然应该是不同的foreach客户。或者我还不明白PHP会话是如何工作的。

3 个答案:

答案 0 :(得分:1)

也许这会对你有所帮助,但有点棘手

$sess_var = array (
     "custId" => Mage::getSingleton('customer/session')->getCustomer()->getId(),
     "value"=> "your value here"
);

Mage::getSingleton('customer/session')->setMyVal($sess_var)

答案 1 :(得分:1)

会话与浏览器会话相关联。有可能即使在注销会话时没有完全销毁,但仍然可以通过该浏览器会话从该计算机访问,但其他任何人都应该可以访问它。您应该尝试在隐身模式下在不同浏览器或其他浏览器上打开同一页面,看看值是否仍然相同。会话ID存储在cookie

如果要在登录时销毁会话,请查找magento logout处理程序并添加session_destroy();在那里或取消设置自定义会话变量。

此外,会话是您在离开公共计算机时清除Cookie和其他信息的原因。注销处理程序还应从会话中删除所有用户详细信息。会话数据存储在服务器上,如果您不将会话数据输出给用户,则访问者无法看到存储在那里的内容。

答案 2 :(得分:1)

您可以在为客户存储会话时使用客户ID(如Ansyori所述),但请务必在注销时将其销毁。