#!/usr/bin/perl -wT
# -*- Mode: perl; tab-width: 4; indent-tabs-mode: nil; -*-
#
# Referrer Tracking: Registration
use strict;
use CGI::Carp;
use HTML::Entities;
use lib 'lib';
use vars '@ISA';
@ISA = qw(TheCommon);
require TheCommon;
sub main {
my $self = shift;
# /register?email=
Your e-mail address is only used to send you e-mails when you win a prize, or when you forget your password. We won't give it to anyone else, and that's a promise. Unless you really annoy us, in which case we might give your e-mail address to a few pornography spammers. It's also what you use to log in. Your name is used when we display your amazing number of referrals in the high score table. You can use whatever you want as your name, but if it is insulting, or annoys us in some way, well, see above.
eof return; # unstick fontlock: ' } # check email doesn't already exist # if email exists, say "this e-mail is already registered, e-mail has been sent", send e-mail, and exit my($Epassword, $Eid, $Ename) = $self->{database}->getUser($email); if (defined($Eid)) { # send e-mail my $smtp = TheSMTP->new($self->{config}->{smtp}, $self->{config}->{from}, $email); $smtp->print("Subject: Your $self->{config}->{name} password\n"); $smtp->print("From: $self->{config}->{name} <$self->{config}->{from}>\n"); $smtp->print("To: $Ename <$email>\n"); $smtp->print("\n"); $smtp->print("Your $self->{config}->{name} account details are:\n"); $smtp->print("\n"); $smtp->print(" Username: $email\n"); $smtp->print(" Password: $Epassword\n"); $smtp->print("\n"); $smtp->print("Hope that helps,\n"); $smtp->print("-- \n"); $smtp->print("Secretary for the $self->{config}->{name}"); # tell user $email = encode_entities($email); $name = encode_entities($name); $self->{http}->page('Registration'); $self->{http}->print(<$email
) is already
registered for $Ename. I've sent the account's password to that
address.
eof
# unstick fontlock: ;
# exit
return;
}
# user doesn't already exist
# make new password, new id
# store email, id, password
$password = $self->newPassword();
$id = $self->{database}->newUser($email, $password, $name);
# if user has cookie, mark cookie as "has user"
my $cookie = $self->getCookie();
if (defined $cookie) {
$self->{database}->updateReferralSetUser($cookie, $id);
}
# send e-mail to email with link to script with email and password
my $smtp = TheSMTP->new($self->{config}->{smtp}, $self->{config}->{from}, $email);
$smtp->print("Subject: Welcome to $self->{config}->{name}\n");
$smtp->print("From: $self->{config}->{name} <$self->{config}->{from}>\n");
$smtp->print("To: $name <$email>\n");
$smtp->print("\n");
$smtp->print("Your $self->{config}->{name} account details are:\n");
$smtp->print("\n");
$smtp->print(" Username: $email\n");
$smtp->print(" Password: $password\n");
$smtp->print("\n");
$smtp->print("You can log in to this site by going to the following page:\n");
$smtp->print("\n");
$smtp->print(" $self->{config}->{home}\n");
$smtp->print("\n");
$smtp->print("Hope that helps,\n");
$smtp->print("-- \n");
$smtp->print("Secretary for the $self->{config}->{name}");
# show page telling user to read e-mail and exit
$email = encode_entities($email);
$self->{http}->page('Registration Complete');
$self->{http}->print(<$email
).
eof
}