Windows 7/8 IE会话数据只能在站点上访问

时间:2016-05-15 08:27:56

标签: php internet-explorer cakephp cookies

我有一个CakePHP电子商务网站,它与第三方网站互动,允许用户自定义他们的产品,然后将数据发送回我们的网站,将其添加到他们的购物篮中。

然而,当第三方网站将产品信息发送到我们的网站时,当前会话数据似乎无法在Windows 7和8下的IE上访问我们的CakePHP代码,结果是产品最终被分配到新篮子而不是客户目前的篮子。

这一切都适用于任何其他浏览器/操作系统组合。

public function persistBasket() {
        $inSession = $this->Session->check('Basket.id');
        $inCookie = $this->Cookie->check('Basket');

        echo "insession ".$inSession;
        echo " cookie ".$inCookie;

        if ($inSession) {
            $basketId = $this->Session->read('Basket.id');
            if (!$inCookie || $basketId != $this->Cookie->read('Basket')) {
                $this->Cookie->write('Basket', $basketId);
            }
        } else if ($inCookie) {
            $basketId = $this->Cookie->read('Basket');
            $this->Session->write('Basket.id', $basketId);
        }
        echo " basketid ".$basketId;

        if (isset($basketId)) {
            // Set Basket model ID
            $this->Controller->Basket->id = $basketId;
        }
    }

    public function setupBasket() {
        $basketId = $this->Controller->Basket->setupBasket();

        if ($basketId !== false && $basketId !== true) {
            $this->Session->write('Basket.id', $basketId);
        }
    }

在Windows 7/8上,当此代码通过第三方网站运行时,它会以“insession cookie”结束(然后出现错误,因为$ basketid未设置)

当用户实际上在网站上时,我们得到“insession 1 cookie 1 basketid 100”

0 个答案:

没有答案