我真的希望有人可以帮忙解决这个问题。
我正在使用Magento 1.6.1.0新安装
如果客户点击前端的忘记密码链接,他们会收到一封电子邮件,其中包含点击链接。当他们单击电子邮件中的链接时,浏览器中会显示一个空白页面(没有提示重置pword)。启动电子邮件链接时的路径如下所示:
www.mystore.com/customer/account/resetpassword/?id=4 token=26f8abcc1efd5559ce81ced2706586db
The "error_log" said:
30-Nov-2011 07:42:50] PHP Fatal error: Call to a member function setCustomerId() on a non-object in /home3/bestcara/public_html/app/code/core/Mage/Customer/controllers/AccountController.php on line 587
这是AccountController.php的代码块
* Display reset forgotten password form
*
* User is redirected on this action when he clicks on the corresponding link in password reset confirmation email
*
*/
public function resetPasswordAction()
{
$resetPasswordLinkToken = (string) $this->getRequest()->getQuery('token');
$customerId = (int) $this->getRequest()->getQuery('id');
try {
$this->_validateResetPasswordLinkToken($customerId, $resetPasswordLinkToken);
$this->loadLayout();
// Pass received parameters to the reset forgotten password form
$this->getLayout()->getBlock('resetPassword')
->setCustomerId($customerId),<------------------------------------Line 587
->setResetPasswordLinkToken($resetPasswordLinkToken);
$this->renderLayout();
} catch (Exception $exception) {
$this->_getSession()->addError(Mage::helper('customer')->__('Your password reset link has expired.'));
$this->_redirect('*/*/');
}
}
我真的需要尽快解决这个问题。非常感谢任何帮助!
答案 0 :(得分:7)
看起来我的主题不支持Magento 1.6.1.0
转到: 应用程序/设计/前端/默认/ [your_custom_theme_folder] /layout/customer.xml
添加以下代码:
<customer_account_resetpassword translate="label">
<label>Reset a Password</label>
<remove name="right"/>
<remove name="left"/>
<reference name="head">
<action method="setTitle" translate="title" module="customer">
<title>Reset a Password</title>
</action>
</reference>
<reference name="root">
<action method="setTemplate">
<template>page/1column.phtml</template>
</action>
<action method="setHeaderTitle" translate="title" module="customer">
<title>Reset a Password</title>
</action>
</reference>
<reference name="content">
<block type="customer/account_resetpassword" name="resetPassword" template="customer/form/resetforgottenpassword.phtml"/>
</reference>
</customer_account_resetpassword>
像魅力一样!
答案 1 :(得分:0)
检查您的customer.xml。
在此链接上查看答案 http://buyolx.blogspot.in/2015/03/magento-forgot-password-and-reset.html