2015-10-12 2 views
3

Мне нужно вручную войти в систему Пользователи, которые уже вошли на другую страницу (с синхронизированными данными пользователя). Поэтому я попытался отправить данные входа в контроллер magento и вручную войти в систему. Скрипт для входа в систему выглядит следующим образом:Magento: руководство пользователя не работает

$customerId = $_GET['u']; 
$password = $_GET['p']; 
$localCustomer = Mage::getModel('customer/customer') 
     ->getCollection() 
     ->addAttributeToSelect('customer_id') 
     ->addAttributeToFilter('customer_id', $customerNumber) 
     ->load(); 
$customer = Mage::getModel('customer/customer')->load($localCustomer->getData()[0]['entity_id']); 
umask(0); 
ob_start(); 
session_start(); 
Mage::app('default'); 
Mage::getSingleton("core/session", array("name" => "frontend")); 
$session = Mage::getSingleton('customer/session'); 
$session->login($customer->getData('customer_id'), $password); 
$session->setCustomerAsLoggedIn($customer); 
header('Location: '.$forwardUrl); 

Это прекрасно работает в Firefox и Chrome, но по какой-то причине, он не в Internet Explorer 11, и я не могу понять, почему. Если после этого я запрашиваю данные у клиента/сеанса, они есть, но как только я перехожу к стартовой странице, я больше не вошел в систему. Только в Internet Explorer отлично работает с обычными браузерами.

Любые идеи, подсказки, почему это происходит? Я в отчаянии.

+0

вы уверены, что вы получаете имя пользователя и пароль с помощью метода GET? и попробуйте один раз ob_start() в верхней части страницы. Это также может быть проблемой набора cookie в IE. Также проверьте настройки. – Deep

+0

Мне нравится часть «отлично работает с обычными браузерами». –

+0

Если бы я не получил имя пользователя и пароль, это не сработало бы в Firefox или Chrome. Какие настройки cookie вы имеете в виду? – Chi

ответ

0

Попробуйте

<?php 

function loginUser($email, $password) 

    require_once ("app/Mage.php"); 
    umask(0); 
    ob_start(); 
    session_start(); 
    Mage::app('default'); 
    Mage::getSingleton("core/session", array("name" => "frontend")); 

    $websiteId = Mage::app()->getWebsite()->getId(); 
    $store = Mage::app()->getStore(); 
    $customer = Mage::getModel("customer/customer"); 
    $customer->website_id = $websiteId; 
    $customer->setStore($store); 
    try { 
      $customer->loadByEmail($email); 
      $session = Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer); 
      $session->login($email, $password); 
    }catch(Exception $e){ 

    } 


    } 
?> 
+0

К сожалению, не работает. Проблема остается прежней, в Internet Explorer я не вошел в систему после посещения страницы – Chi

Смежные вопросы