Registration not showing errors

Permalink
Had a user try to put dash "-" in his username, and the site rejected him. The problem is, register.php does not tell you why your login fails, it just bounces back to make you do it again.

I found print_r($error) showed me the problem, but for the life of me, i can't get a foreach loop to show the errors. I'm sure it has something to do with that "protected" bit in the array - what the heck is that?

Concrete\Core\Error\Error Object
(
    [error:protected] => Array
        (
            [0] => Incorrect image validation code. Please check the image and re-enter the letters or numbers as necessary.
            [1] => The email address test@test.com is already in use. Please choose another.
            [2] => A username may only contain letters, numbers, dots (not at the beginning/end), underscores (not at the beginning/end).
        )
    [helperAlwaysCreateNewInstance] => 1
)

rockface
View Replies: View Best Answer
MrKDilkington replied on at Permalink Reply 1 Attachment
MrKDilkington
Hi rockface,

What version of 5.7 are you using?

Have you made any core modifications or overrides?

I just tried to duplicate what you are describing. I get an error message when attempting to use a dash in a username.
A username may only contain letters, numbers, dots (not at the beginning/end), underscores (not at the beginning/end).

See attached screenshot.
rockface replied on at Permalink Reply
rockface
Hmmm... This is interesting now (I am using 5.7.5.3 BTW)

I do have that page themed (using the config\app.php). Once the theme is removed, it is working. Thanks for your time!

I also found the error message is located above any code from the register.php file, so changing the theme in app.php would have the same result no mater which theme is used.
The problem is not the theme, it is a C5 coding issue which causes the error message functionality to be lost when a theme is applied to the page.

In a world where users are duped into clicking on false screens, popups and hacks trying to steel you personal information, I really want users to have confidence they're registering on the correct website. If the login and registration pages look like a different website... well, you get my drift.
MrKDilkington replied on at Permalink Best Answer Reply
MrKDilkington
@rockface

Someone else posted today with a similar problem.

"I worked out it was the fact I didn't have this line of code in my template, so I wasn't seeing my error messages. my password was too short."
<?php Loader::element('system_errors', array('format' => 'block', 'error' => $error, 'success' => $success, 'message' => $message)); ?>

"
https://www.concrete5.org/community/forums/customizing_c5/customisin...
rockface replied on at Permalink Reply
rockface
OK - You are amazing!

I added that code to the bottom of header.php and it worked.

I digging up the CSS for the alert box and will give this information to the guy who wrote the theme.

Thanks a LOT for your help!