2013-12-13 5 views
5

Я просто перенес свой сайт. Но у меня проблема.Клиент Magento не может войти в систему

Мои клиенты не могут войти в свою учетную запись. При входе в систему на странице входа. http://www.mywebsite.com/customer/account/login/ Необходимо войти в систему, чтобы иметь возможность переходить на другую страницу.

Пожалуйста, помогите мне, как это исправить?

+0

Как вы храните данные сеанса? – input

+0

@ input Я очень новичок в magento. вы имеете в виду в local.xml правильно? если да sobaaroi

+0

Есть ли много файлов в/var/session /? – input

ответ

0

Шаг 1: Web_Customer.xml - Включение пользовательских модулей:

<?xml version=”1.0″?> 
<config> 
<modules> 
<Web_Customer> 
<active>true</active> 
<codePool>local</codePool> 
</Web_Customer> 
</modules> 
</config> 

Шаг 2: config.xml - Конфигурация для нашего модуля:

<?xml version=”1.0″?> 
<config> 
<modules> 
<Web_Customer> 
<version>0.0.1</version> 
</Web_Customer> 
</modules> 
<frontend> 
<routers> 
<customer><!– Name of core module to be overridden–> 
<args> 
<modules> 
<Web_Customer before=”Mage_Customer”>Web_Customer</Web_Customer><!– Tell Magento to call our custom module before the Mage/Checkout module –> 
</modules> 
</args> 
</customer> 
</routers> 
</frontend> 
</config> 

Шаг 3: Добавьте следующий код в строку 139 сразу после того, открытие loginPostAction() в AccountController.php

<?php 
require_once(“Mage/Customer/controllers/AccountController.php”); 
class Web_Customer_AccountController extends Mage_CUstomer_AccountController{ 
public function loginPostAction() 
{ 
// generate form_key if missing or invalid 
if (!($formKey = $this->getRequest()->getParam(‘form_key’, null)) || $formKey != Mage::getSingleton(‘core/session’)->getFormKey()) { 
$this->getRequest()->setParams(array(‘form_key’ =>Mage::getSingleton(‘core/session’)->getFormKey())); 
} 

//Note* 
// rest code is same as from Mage/Customer/controllers/AccountController.php 
} 
} 
?> 

После завершения, не забудьте очистить кэш Magento.

+0

У меня тоже была такая же проблема при обновлении до 1.8.1.0.so, я попробовал this.its работать для меня. –

+0

Большое спасибо за решение. Я только обнаружил, что эти ошибки приходят с версией magento 1.8.1. Так что это решение для этой проблемы, проверьте это: http://blueclawecommerce.co.uk/blog/fix-customer-cannot-login-to-magento-1-8-1/ – sobaaroi

0
  • Перейти к template/customer/form/login.phtml и template/persistent/customer/form/login.phtml и под

    <ul class="form-list"> 
    
  • Добавьте следующий код в форме входа

    <input type="hidden" name="form_key" value="<? echo Mage::getSingleton('core/session')->getFormKey(); ?>" /> 
    

ИЛИ, если вы используете форму для входа в несколько мест с разными файлами шаблонов

  • Копия app/code/core/Mage/Customer/controllers/AccountController.php в app/code/local/Mage/Customer/controllers/AccountController.php

  • Откройте AccountController.php, что вы скопировали в местных и добавьте следующий код в строку 139 сразу после открытия loginPostAction()

    // generate form_key if missing or invalid 
    if (!($formKey = $this->getRequest()->getParam('form_key', null)) || $formKey != Mage::getSingleton('core/session')->getFormKey()) { 
        $this->getRequest()->setParams(array('form_key' =>Mage::getSingleton('core/session')->getFormKey())); 
    } 
    

http://www.blueclawsearch.co.uk/blog/2013/12/12/fix-customer-cannot-login-to-magento-1-8-1/

+0

работал для меня, спасибо! – lenniep

+0

Плохая идея. Вы будете побеждать цель иметь form_key в первую очередь. – seanbreeden

22

После обновления до Magento 1.8.1 вам необходимо отредактировать это ваши существующие файлы шаблонов.

Файлы, перечисленные ниже, нуждаются в изменении, чтобы быть совместимым с Magento 1.8.1. Если они существуют в вашей настраиваемой теме, сравните их с исходными файлами base/default/template.

  • your_package/your_theme/template/customer/form/newsletter.phtml
  • your_package/your_theme/template/customer/form/login.phtml
  • your_package/your_theme/template/customer/form/edit.phtml
  • your_package/your_theme/template/customer/address/edit.phtml
  • your_package/your_theme/template/whishlist/view.phtml
  • your_package/your_theme/template/whishlist/sharing.phtml
  • your_package/your_theme/template/review/form.phtml
  • your_package/your_theme/template/persistent/customer/form/login.phtml
  • your_package/your_theme/template/persistent/checkout/onepage/login.phtml
  • your_package/your_theme/template/checkout/onepage/login.phtml
  • your_package/your_theme/template/checkout/multishipping/overview.phtml
  • your_package/your_theme/template/checkout/cart.phtml
  • your_package/your_theme/template/catalog/product/view.phtml
  • your_package/your_theme/template/sendfriend/send.phtml
  • your_package/your_theme/template/sales/reorder/sidebar.phtml

Редактировать эти файлы и добавить <?php echo $this->getBlockHtml('formkey'); ?> после <form ...> открыть тег

+0

Человек, ты только что сэкономил мой день. Приезжайте в Словению, и я заплачу вам пиво :) – deanpodgornik

+0

Именно то, что я искал. TYFM! – Lemonade

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