Magento密码重置不起作用

Posted

技术标签:

【中文标题】Magento密码重置不起作用【英文标题】:Magento password-reset not working 【发布时间】:2016-04-30 20:13:15 【问题描述】:

我有一个 Magento 网店 (1.9.2.3.),有很多注册客户。在我的账户 -> 忘记密码时,注册客户可以填写他/她的电子邮件地址。单击“发送”按钮时,商店会显示“服务器错误 500”。

这是唯一出现错误的地方。可能是什么问题?如何解决这个问题?

这是页面,您可以通过我的电子邮件尝试一下:pvanremmen@prsocial.nl https://www.hoesjesonline.nl/customer/account/forgotpassword/

我希望有一个解决方案。

PS:问题出在 Magento 1.9.2.2,刚刚升级到 1.9.2.3,它仍然存在。

更新: 来自日志的错误: [Mon Jan 25 15:14:00.768731 2016] [:error] [pid 10335] [client 77.172.241.31:62120] php 致命错误:在 /home/hoesjeson/ 中的非对象上调用成员函数 getBackend() domain/hoesjesonline.nl/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php 在第 1548 行,引用者:https://www.hoesjesonline.nl/customer/account/forgotpassword/ [2016 年 1 月 25 日星期一 15:14:34.977753] [:error] [pid 9480] [client 77.172.241.31:62129] PHP 致命错误:在 /home/hoesjeson/ 中的非对象上调用成员函数 getBackend() domain/hoesjesonline.nl/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php 在第 1548 行,引用者:https://www.hoesjesonline.nl/customer/account/forgotpassword/

【问题讨论】:

您应该检查日志。您可以在 magento 安装的根文件夹中的 /var/log 中找到它们。检查 exception.log 和 system.log 并将其发布在此处。 并检查您的 Apache 错误日志以获取有关失败原因的更多信息。 @Peter 过去您升级到 Magento 1.9.2.2 还是全新安装? 不,这是升级。不是干净的安装。 @Ahmed.hoban 我禁用了日志,所以我要激活它并重试 @Ahmed.hoban:查看我的第一篇帖子更新错误日志 【参考方案1】:

从 Magento 1.9.2.2 开始,需要在忘记密码的表单中发送表单密钥。

在您的模板customer/form/forgotpassword.phtml 中输入:

<?php echo $this->getBlockHtml('formkey'); ?>

就在&lt;form action="..."&gt; 标签下。 刷新缓存并查看页面中是否存在带有表单键的隐藏输入。

希望这能解决您的问题:)

【讨论】:

感谢您的快速解答。 forgotpassword.phtml 中缺少表单密钥,但它没有解决错误。还有其他解决此问题的想法吗?【参考方案2】:

从您的主题中打开 customer/form/forgotpassword.phtml。 请首先检查表单操作。它应该是 baseurl+customer/account/forgotpasswordpost/

<form action="baseurl+/customer/account/forgotpasswordpost/">

现在检查表单键是否存在。如果表单键不存在,则放在表单标签之间的行下方。

<?php echo $this->getBlockHtml('formkey'); ?>

不要忘记刷新缓存。 希望对你有帮助。

【讨论】:

【参考方案3】:

好的,我找到了开发人员的解决方案。升级 Magento 版本后,数据库中的客户表以某种方式损坏。重建数据库中的客户表就成功了!

【讨论】:

【参考方案4】:

您可以尝试此修复,转到您主题的 layout/customer.xml 并添加:

<customer_account_changeforgotten 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_changeforgotten" name="changeForgottenPassword" template="customer/form/resetforgottenpassword.phtml"/>
    </reference>
</customer_account_changeforgotten>

更多详情:http://www.dudesquare.nl/blog/2015/11/03/reset-password-blank-page-magento-1-9-2-2/

【讨论】:

以上是关于Magento密码重置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5密码重置不起作用

PHP - 密码重置表单不起作用

Azure AD B2C 自助服务密码重置链接不起作用 [关闭]

从发送的电子邮件网络核心身份调用重置密码时不起作用

sql Magento - 重置密码

ASP.NET Core 2.2 - 密码重置在 Azure 上不起作用(无效令牌)