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 https上的Magento前端登录已中断_Php_Magento_Session_Cookies_Magento 1.9 - Fatal编程技术网

Php https上的Magento前端登录已中断

Php https上的Magento前端登录已中断,php,magento,session,cookies,magento-1.9,Php,Magento,Session,Cookies,Magento 1.9,我遇到了一个问题,Magento站点只在签出页面上启用https,但如果我将主不安全地址设置为https,使整个站点都在https上,登录过程就会中断 客户可以输入其详细信息,然后重定向回主页,但无需登录 管理区域不受此影响,并继续正常运行 请注意,该网站位于主要公司url trade.mydomain.co.uk的子域中 我在管理面板的cookie部分尝试了很多不同的设置,例如将cookie生存期设置为零、更改cookie域等,以及对Customer/Model/Session.php的“修复

我遇到了一个问题,Magento站点只在签出页面上启用https,但如果我将主不安全地址设置为https,使整个站点都在https上,登录过程就会中断

客户可以输入其详细信息,然后重定向回主页,但无需登录

管理区域不受此影响,并继续正常运行

请注意,该网站位于主要公司url trade.mydomain.co.uk的子域中

我在管理面板的cookie部分尝试了很多不同的设置,例如将cookie生存期设置为零、更改cookie域等,以及对Customer/Model/Session.php的“修复”

public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    //$this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}
上面的修复允许客户登录,但一旦加载任何其他页面,它们就会再次被踢出

至于管理区域中的cookie设置,我已尝试将生存期更改为0,我已尝试将cookie域设置为.mydomain.co.uk、mydomain.co.uk、trade.mydomain.co.uk。 我尝试将cookie路径设置为/和更复杂的路径,如trade.mydomain


现在真的很困惑,这个站点在HTTP上运行得非常完美,管理区域在HTTPS上运行得非常完美。只有当我将不安全域设置为https时,问题才会出现。不幸的是,需要完整的站点https。

创建目录app/code/local/Mage/Customer/Model,然后将Session.php文件复制到其中。Session.php文件存储在以下路径app/code/core/Mage/Customer/Model

一旦将文件移动到指定位置,请尝试查找此部分:

public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    $this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}
现在,关注$this->rendersession;节,并使用//使其看起来像注释。结果编码将如下所示

公共函数setCustomeraLoggedin$customer


现在,清除所有登录cookie。我希望它能对你起到最大的作用。

如果你读了全文,你会发现我已经试过了
{
    $this->setCustomer($customer);
    //$this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}