2013-12-13 176 views
5

我剛剛遷移了我的網站。但是我遇到了問題。Magento客戶無法登錄

我的客戶無法登錄到他們的帳戶。點擊登錄頁面登錄。 http://www.mywebsite.com/customer/account/login/ 它應該登錄他們的帳戶,但它會重定向同一頁面。

請幫我解決這個問題?

+0

你是如何存儲會話數據? – input

+0

@input我對magento很陌生。你的意思是在local.xml中嗎?如果是<![CDATA [files]]> 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:​​3210配置 - 我們的模塊:

<?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.phtmltemplate/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.phpapp/code/local/Mage/Customer/controllers/AccountController.php

  • 打開AccountController.php已複製到本地,並添加以下代碼只是loginPostAction(開幕後到線139)

    // 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