我刚迁移了我的网站。但我遇到了问题。
我的客户无法登录其帐户。单击登录登录页面时。 http://www.mywebsite.com/customer/account/login/ 它应该登录他们的帐户,但它会重定向同一页面。
请帮我解决这个问题?
答案 0 :(得分:23)
升级到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 ...>
答案 1 :(得分: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步:在loginPostAction()
AccountController.php
后,将以下代码添加到第139行
<?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缓存。
答案 2 :(得分: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,并在打开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/