Search

I must have a knack for finding the weirdest issues.

Has anyone heard of an issue where logging in suddenly stops working? Keep in mind that the exact same code and database run without issue in production and on a localhost on another machine.

But on this one computer, Members extension login does not work, while Symphony admin authentication works fine. I tried a complete reinstall of the site, and login worked for a while, then stopped working again. It didn't matter which user I tried. I updated passwords, cleared cache, deleted cookies, tried different browsers, tried updating to the latest integration for core and members, tried checking out previous commits of core and members, restarted the computer, installed on MAMP instead of Mac OS X webserver. Nothing worked.

So, I can no longer test the Members extension on my MacBook Pro. I get the following when I try to login.

<member-login-info logged-in="no" result="error">
    <post-values>
        <username>username</username>
        <password>blahblahblah</password>
    </post-values>
</member-login-info>

When I try to login with OpenID, I get the following error:

Fatal error: Call to a member function fetchMemberIDBy() on a non-object in /Users/stephen/Sites/domain7/team-members/extensions/members_openid/extension.driver.php on line 40

So, I tried to track down what was happening in the Member class login method. I added the following in an install where Members login was working on the same localhost, on line 100 of the lib/member.symphony.php file:

print_r(extension_Members::$handles); exit;

which returned the following on attempted login:

Array
(
    [timezone] => timezone
    [role] => role
    [activation] => activation
    [identity] => username
    [email] => email-address
    [authentication] => password
)

In the install that was not working, the following was returned:

Array
(
)

Since the field handles cannot be found, the POST values cannot be evaluated properly and login fails. I'll see if I can track this back further, but I'm kinda stumped at this point to explain how on Saturday afternoon, the test site on my localhost suddenly stopped authenticating.

The field handles are loaded from manifest/config.php. Is config.php readable and does it have the member values?

Yep. The config.php is readable. I can put this at the top of the checkFrontendPagePermissions() method in the extension.driver.php and it returns the Members section ID:

print_r(extension_Members::getMembersSection()); exit;

This correctly returns the section ID: 1.

###### MEMBERS ######
'members' => array(
    'cookie-prefix' => 'sym-members',
    'section' => '1',
    'reset-password-template' => 'etm-reset-password',
    'regenerate-activation-code-template' => 'etm-account-activation',
),
########

So, I discovered that the initialise() method in the extension driver was not finding the Members field IDs. This code added to the end of the method returned null.

print_r(extension_Members::$handles); exit;

If I modify the configuration file by setting the ID values for the identity and authentication fields, I am able to restore Members login.

###### MEMBERS ######
'members' => array(
    'cookie-prefix' => 'sym-members',
    'section' => '1',
    'reset-password-template' => 'etm-account-activation',
    'regenerate-activation-code-template' => 'etm-account-activation',
    'identity' => '148',
    'email' => '149',
    'authentication' => '150',
),
########

Including the email field ID restores OpenID authentication.

Are you using the Email Template Filter, or the Email Template Manager?

Email Template Manager

There is a tutorial on how to set up a Email Template Filter written by Rowan (the creator).

The tutorial wasn't clear to me so I have switched to the Email template Manager which is more clear.

Sry guys, it is so much frustrating to keep searching to know how things work after hours. And it's sad that symphony isn't well documented.

I was talking about symphony's documentation in general. I think that this website has to be rethinked to provide more help. Or at least the tutorial/how to/F.A.Q parts

Could you post your Register form HTML?

Instead I post attachements, that's more self-explained. I have only one event having 2 filters.

And I would like you to post the form pls which will generate the member and send email. And correct my steps pls.

Attachments:
event.jpg, email filter template.jpg, datasource.jpg and member_section.jpg

Bad news: You can not send a Members email with the current stable release ot Email Template Manager. This has security reasons. It must not be possible to set the recipient using POST values (because the ETM will also be used for contact forms etc., and using POST value recipients would mean enabling SPAM emailing using the form).

Good news: Huib (a.k.a. creativedutchmen) is working on a new release (in the development branch on Github), which will be more flexible. I already sent Members emails with this successfully. It will probably need explanations in the README, however, which will be added when it is finally released.

The basic steps will be:

  • Use the etm-entry-id parameter to filter a (Members) datasource to output the member's data (i.e. email address).
  • Use XPath in your email template configuration to select the email address (and maybe the name) of the recipient.

I expect a release candidate (RC) of the Email Template Manager extension to be released very soon, probably by the end of the week.

Thanks for the good news, michael-e and creativedutchmen. You're doing some great work on the email side of things.

So, I discovered that my silly issue had to do with messing around with the configuration file too much. I had thought that the extension was auto-discovering the field IDs internally, based on the section ID. What's actually happening is that when the Members section is saved the IDs for the Members extension fields in that section are saved to the configuration file. So, I had inadvertently written over the Members extension configuration when I was trying to sync my local install configuration with production.

The problem was fixed when I resaved the Members section configuration, which set the field IDs for the Members extension fields to the configuration file. Here's what a healthy Members extension configuration should look like:

###### MEMBERS ######
'members' => array(
    'cookie-prefix' => 'sym-members',
    'section' => '1',
    'identity' => '148',
    'email' => '149',
    'authentication' => '150',
    'role' => '151',
    'activation' => '152',
    'timezone' => '153',
    'reset-password-template' => 'etm-reset-password',
    'regenerate-activation-code-template' => 'etm-account-activation',
),
########

Sorry again for my flailing around and wasting people's time. At any rate, I have a better understanding of the inner workings of the extension. And I hope others do too.

Thanks, Stephen, for this clarification. There is an issue on the tracker which is related to this:

https://github.com/symphonycms/members/issues/80

I'm happy to report that I have been able to implement all the features of the Members extension, integrated with the Email Template Manager extension, and everything is working quite well. There are still some remaining issues to clear up. But the basic functionality is there. If there are any others who would like to test out these extensions, now would be a good time.

Same here. Finally my implementation starts to feel like an "application". It is also using the Email Template Manager (thanks a lot, Huib a.k.a. creativedutchmen), and meanwhile I feel that we are really on the right track with Members (and the Email Template Manager alike).

Still the documentation is not a complete "how-to" guide. Maybe we can offer better docs in the future. Bauhouse, Huib and I are working hard, analyzing, discussing and modifying things (and pushing the coding work on Members to Brendan... thanks so much for your continuous efforts, mate!).

If you have time, please try the integration branch on Github. We've already found more than 90 bugs, and you can believe me: There shouldn't be so many issues left. But the more you help, the better this biest will be!

If you like to use it with the Email Template Manager, I suggest to use the development branch (which will be version 3.0 soon): https://github.com/creativedutchmen/email_template_manager/tree/development

[EDIT]: Questions should be posted in this forum thread. Real issues should go to Github. :-)

Here's Beta 3, with a significant number of changes and bug fixes. I anticipate this will be the final beta, with the majority of the remaining work being documentation/UX and API based.

Rock on! Installing now and will report anything I come across.

Thanks for the update brendo.

I'm currently not using the activation features of this extension, so when I try to enable the extension to update to beta 3, I'm getting this error message:

MySQL Error (1146): Table 'xxxxx.symfieldsmemberactivation' doesn't exist in query "ALTER TABLE sym_fields_memberactivation ADD auto_login ENUM('yes','no') NULL DEFAULT 'yes';"

Am I correct in assuming this is a small bug, as activation isn't a necessity?

Not sure if this was logged or not, but i am getting this error on initial set up:

Array ( [query] => INSERT INTO `sym_sections` VALUES( NULL, 'Members', 'members', 999, NULL, 'asc', 'no', 'Content' ) [msg] => Column count doesn't match value count at row 1 [num] => 1136 )

this is from clicking the "Create" button under "Smart Setup"

edit - didn't read that this requires 2.2.1 beta1. I'll update my build and see if that resolves it.

so i have only 2.2 installed, how would I go about switching to use 2.2.1beta1/2 via git?

You need to get the integration branch of the Members extension. There is no 'smart setup' anymore.

thanks craig. So i pulled the integration branch and tried setting up a members section but i am getting an error when I try to add a Members: Password field:

Unknown column 'code_expiry' in 'field list'
INSERT INTO `sym_fields_memberpassword` (`field_id`, `length`, `strength`, `salt`, `code_expiry`) VALUES ('9', '6', 'good', '123', '1 hour')
[/site/symphony/lib/toolkit/class.mysql.php:458] MySQL->__error();
[/site/symphony/lib/toolkit/class.mysql.php:541] MySQL->query();
[/site/extensions/members/fields/field.memberpassword.php:390] MySQL->insert();
[/site/symphony/content/content.blueprintssections.php:727] fieldMemberPassword->commit();
[/site/symphony/content/content.blueprintssections.php:824] contentBlueprintsSections->__actionNew();
[/site/symphony/lib/toolkit/class.administrationpage.php:440] contentBlueprintsSections->__actionEdit();
[/site/symphony/lib/toolkit/class.administrationpage.php:409] AdministrationPage->__switchboard();
[/site/symphony/lib/toolkit/class.administrationpage.php:242] AdministrationPage->action();
[/site/symphony/lib/core/class.administration.php:222] AdministrationPage->build();
[/site/symphony/lib/core/class.administration.php:375] Administration->__buildPage();
[/site/v1/index.php:25] Administration->display();

the same is happening for adding in a Members: Role field:

Unknown column 'default_role' in 'field list'
INSERT INTO `sym_fields_memberrole` (`field_id`, `default_role`) VALUES ('8', '1')
Backtrace:
[/site/symphony/lib/toolkit/class.mysql.php:458] MySQL->__error();
[/site/symphony/lib/toolkit/class.mysql.php:541] MySQL->query();
[/site/extensions/members/fields/field.memberrole.php:139] MySQL->insert();
[/site/symphony/content/content.blueprintssections.php:727] fieldMemberRole->commit();
[/site/symphony/content/content.blueprintssections.php:824] contentBlueprintsSections->__actionNew();
[/site/symphony/lib/toolkit/class.administrationpage.php:440] contentBlueprintsSections->__actionEdit();
[/site/symphony/lib/toolkit/class.administrationpage.php:409] AdministrationPage->__switchboard();
[/site/symphony/lib/toolkit/class.administrationpage.php:242] AdministrationPage->action();
[/site/symphony/lib/core/class.administration.php:222] AdministrationPage->build();site
[/site/symphony/lib/core/class.administration.php:375] Administration->__buildPage();
[/site/index.php:25] Administration->display();

Is this an issue from not using 2.2.1?

The Members extension isn't compatible with any version of Symphony previous to 2.2.1, which is no longer in beta, and is actually the latest stable version of Symphony. You'll need to update your symphony install.

Not only that, but you need to uninstall the previous version of Members because the DB tables need to be recreated. Those two branches should actually be separate repos.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details