Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 针对特定客户的Magento会话_Php_Magento_Session_E Commerce_Magento 1.8 - Fatal编程技术网

Php 针对特定客户的Magento会话

Php 针对特定客户的Magento会话,php,magento,session,e-commerce,magento-1.8,Php,Magento,Session,E Commerce,Magento 1.8,使用Localhost。 我想为每个特定客户存储会话值 当我在Mage::getSingleton('core/session')->setMyVal('something')中存储我的值时,所有客户中都会出现相同的值。当我看到这个的时候我很害怕。。。这就像是客户会话劫持。我希望会议对每位客户都是私人的 当我使用Mage::getSingleton('customer/session')->setMyVal('something')时,我使用一个客户帐户获得了这个“something”,然后注销

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

当我在
Mage::getSingleton('core/session')->setMyVal('something')
中存储我的值时,所有客户中都会出现相同的值。当我看到这个的时候我很害怕。。。这就像是客户会话劫持。我希望会议对每位客户都是私人的

当我使用
Mage::getSingleton('customer/session')->setMyVal('something')
时,我使用一个客户帐户获得了这个“something”,然后注销并与不同的客户一起登录,我再次看到了相同的“something”


例如,如果我想存储“logged-in-datetime”,当然每个客户的存储方式应该不同。或者我不了解PHP会话是如何工作的。

也许这会帮助您,但有点棘手

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

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

会话绑定到浏览器会话。即使在注销时,会话也可能没有完全销毁,但仍然可以通过该浏览器会话从该计算机访问,但其他任何人都应该可以访问该会话。您应该尝试在不同的浏览器上打开相同的页面,或者在匿名模式下打开另一个页面,看看这些值是否仍然相同。会话id存储在cookie中

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


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

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

会话与浏览器会话绑定。即使在注销时,会话也可能没有完全销毁,但仍然可以通过该浏览器会话从该计算机访问,但其他任何人都应该可以访问该会话。您应该尝试在不同的浏览器上打开相同的页面,或者在匿名模式下打开另一个页面,看看这些值是否仍然相同。会话id存储在cookie中。事实上,当我从两个不同的浏览器和两个不同的客户登录时,或者如果我删除了“前端”cookie,那么一切都会正常工作。请在下面发布您的答案,以便我将其作为正确答案进行检查。因此,如果我使用公用计算机登录到Magento商店并下订单,那么如果其他人使用不同的客户帐户从同一台计算机登录到同一商店,则可能会看到我的个人会话数据。。。?这可能是银行应用程序建议不要从公共计算机登录的原因之一。是的,但在我的情况下,我需要向客户输出/显示特定的会话值。这就是为什么我想确保它能保持隐私。