-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Contact form loses data after postback with error (ex. captcha not entered) on 3.7.3 (with maybe solution) #17126
Comments
Please test #17122 This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
I use my own simple captcha plugin. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
Additional comment: See also: Additional comments pascal-910 (13 july) If I delete the line 75: $app->setUserState('com_contact.contact.data', array('catid' => $item->catid)); This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
You shouldn't delete the line but instead use a getfromstate request in there and if it doesn't exists it sets $itsm->catid |
With var_dump($item) you can see that $item->catid is already loaded. So it exists. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
Hi @tonypartridge, Do you mean the following? Change line 75 (..a\components\com_contact\views\contact\view.html.php)) $app->setUserState('com_contact.contact.data', array('catid' => $item->catid)); To if (!isset($item->catid) || empty($item->catid))
{
$app->setUserState('com_contact.contact.data', array('catid' => $item->catid));
} If I tested local, its works by the 'Single Contact' form + captcha enabled. Gr. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
That looks good to me Gr, can you do a pull request? |
I have made my first pull request #17743. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
Set to "closed" on behalf of @franz-wohlkoenig by The JTracker Application at issues.joomla.org/joomla-cms/17126 |
closed as having Pull Request #17743 This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/17126. |
Hi @franz-wohlkoenig, Pull Request #17743 is still open for testing. |
have called 2 former Testers for retest. |
* Contact form loses data after postback with error Pull Request for issue #17126. Testing Instructions. See issue #17126 * Go to Single Contact. * Fill in the form. * Do not fill in captcha. * Send email. Expected result: Warning + textboxes are NOT empty. So the user should not entered all text again. Actual result: All textboxes are empty, so the user has to enter again all textboxes. Thanks to: @ pascal-910. * Delete some tabs Delete some tabs. * Update view.html.php if (!isset($item->catid) || empty($item->catid)) changes to if (empty($item->catid))
Steps to reproduce the issue
Fresh install of joomla 3.7.3
a. linked to Super user
a. Enable „Captcha – ReCaptcha“ Plugin
b. Go to Plugin configuration and enter dummy string into „Site key“ and „Secret Key“ (for ex. „xxx“)
Then select „Contact form“ and enter something into “Name”, “Email”, “Subject” and “Message” field. Then press “Send Email”
Expected result
Postback, then message box that captcha wasn't set and still filled Textboxes
Actual result
Postback with messagebox, but all textboxes are empty so user has to enter again everything
System information (as much as possible)
Problem didn't occur before 3.7.3
PHP 5.4.16
Win7 Business Edition SP1
Apache 2.4.4.
Mysql 5.0.10
Additional comments
Hint to solution/reason:
I don’t know what’s the line for but in file “components\com_contact\views\contact\view.html.php” line 75 the contact data will be overwritten with category id. If this line is commented out it works. You can enter something in contact form, if you don’t enter captcha data and submit no data will be lost in textboxes and user don’t need to enter again.
$app->setUserState('com_contact.contact.data', array('catid' => $item->catid));
The text was updated successfully, but these errors were encountered: