4
votes

I have a Magento webshop (1.9.2.3.) with a lot of registered customers. When going to My Account -> Forgot password, a registered customer can fill out his/her e-mail address. When clicking on 'Send' button, the shop shows an 'Server Error 500'.

It's the only place where the error shows up. What can be the problem? What to do to fix this?

This is the page and you can give it try with my e-mail: [email protected] https://www.hoesjesonline.nl/customer/account/forgotpassword/

I hope there's a solution.

PS: The problem was there with Magento 1.9.2.2, just upgraded to 1.9.2.3 and it's still there.

UPDATE: Error from log: [Mon Jan 25 15:14:00.768731 2016] [:error] [pid 10335] [client 77.172.241.31:62120] PHP Fatal error: Call to a member function getBackend() on a non-object in /home/hoesjeson/domains/hoesjesonline.nl/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 1548, referer: https://www.hoesjesonline.nl/customer/account/forgotpassword/ [Mon Jan 25 15:14:34.977753 2016] [:error] [pid 9480] [client 77.172.241.31:62129] PHP Fatal error: Call to a member function getBackend() on a non-object in /home/hoesjeson/domains/hoesjesonline.nl/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 1548, referer: https://www.hoesjesonline.nl/customer/account/forgotpassword/

4
You should check the logs. You can find them in /var/log within your root folder of your magento installation. Check exception.log and system.log and post it here.ahmed.hoban
And check your Apache error log for more information about why it's failing.scrowler
@Peter In the past you upgraded to Magento 1.9.2.2 or it was a clean installation?Mukesh
No, it was an upgrade. Not a clean installation. @Ahmed.hoban I disabled the logs, so I'm gonna activate it and retryPeter van Remmen
@Ahmed.hoban: See my first post UPDATE with error logPeter van Remmen

4 Answers

5
votes

Since Magento 1.9.2.2 it is required to send a form key with the forgot password form.

In your template customer/form/forgotpassword.phtml put:

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

Just under the <form action="..."> tag. Refresh the cache and see if the hidden input with a form key is present in the page.

Hopefully this will solve your issue :)

1
votes

Open customer/form/forgotpassword.phtml from your theme. Please first check form action. it should be baseurl+customer/account/forgotpasswordpost/

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

Now check if form key is exist or not. If form key not exist then put below line between form tag.

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

Dont forget to flush cache. Hope it helps you.

1
votes

Okay, I found the solution by a developer. The customer tables in the database were somehow corrupt after an upgrade of Magento version. Rebuilding the customer tables in the database did the trick!

1
votes

You can try this fix, go to your theme's layout/customer.xml and add:

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

More details: http://www.dudesquare.nl/blog/2015/11/03/reset-password-blank-page-magento-1-9-2-2/