auto generating email address for user registration

8 years 2 months ago #277805 by ahicks
Hi

using CB Standard signup

Triggers: onBeforeSaveUserRegistrationRequest
Action: Code
User: Automatic
Access: Everybody
Method: PHP

if I use code

global $_POST;

$_POST = uniqid() . '@domain.com';
$_POST = $_POST;

to generate a random first part of the email address is created properly,

however the code

global $_POST;

$_POST = '[firstname]@domain.com';
$_POST = $_POST;

produces an email address of @domain.com (nothing before the @) then get an error of invalid email address as the email address created has nothing before the @

should [firstname] in code be replaced by a form variable as presumably nothing has been saved yet - if so what would the form variable be?

Regards

Adrian

Please Log in to join the conversation.

8 years 2 months ago #277844 by krileon

should [firstname] in code be replaced by a form variable as presumably nothing has been saved yet - if so what would the form variable be?

Nope, the user object hasn't even been constructed at that point. So you can't use user substitutions as the user doesn't exist yet (in object or in the database). You'd need to directly access the POST values, but you need to secure it with some cleaning. The below should work fine.

$_POST['email'] = '[cb:parse function="clean" method="string"][post_firstname][/cb:parse]@domain.com';

The below will also work to use PHP to grab and clean the firstname from POST.

$firstName = \CBLib\Application\Application::Input()->get( 'firstname', uniqid(), CBLib\Registry\GetterInterface::STRING );

$_POST['email'] = $firstName . '@domain.com';


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.489 seconds

Facebook Twitter LinkedIn