域名dupilicate cookie问题中的PHP session_start()和点前缀

时间:2018-02-20 23:14:31

标签: php cookies session-cookies

我用函数session_start()设置会话。这将为域dev.magento2.com设置PHPSESSID cookie。当我回到页面(Magento 2平台)时,Magento代码添加另一个带有前导点的php PHPSESSID cookie。我读到现代浏览器不应该关心领先的点。但在我的情况下,它仍然会创建另一个cookie而不是更新现有的cookie。

如下图所示,它将创建另一个PHPSESSID cookie。这是为什么? console

1 个答案:

答案 0 :(得分:0)

答案是:因为在这两种情况下你都有不同的会话设置,但是:

您不应混合使用magneto和ajax会话中的数据。

您使用类似Mage::getSingleton('core/session')->setMyValue('test');之类的内容吗?

使用print_r($_SESSION)检查磁力会话中的内容。框架为会话添加了一些魔力......

如果在一个会话中推送两个引擎,则很有可能导致问题。也可以一次只读取一个进程的会话。第二个将等待。

使用session_name()更改会话名称,并保留不同的会话。

如果您需要将用户转移到ajax.php,除了数据之外,还要传递哈希和到期日期。

<?php
$valid_time = strtotime('+1 hour');
$user_id = 'x';
$hash = crc32($valid_time.$user_id.'security key');

使用所有数据,即在哈希生成中传递的内容。