lib/controllers/auth.php:
<?php
class onrAuthController extends ezcMvcController
{
    public function 
doRegister()
    {
        
$res = new ezcMvcResult;
        return 
$res;
    }

    public function 
doRegisterSubmit()
    {
        
$res = new ezcMvcResult;
        if ( isset( 
$this->reg ) )
        {
            
$res->variables['success'] = self::register$message );
            
$res->variables['message'] = $message;
        }
        return 
$res;
    }

    private static function 
register( &$message )
    {
        
$db ezcDbInstance::get();
        
$email substrpreg_replace'/[^a-z0-9.@]/'''$_POST['email'] ), 032 );
        
$fullnameucwordsstrtolowerpreg_replace'/[^a-zæøå0-9 ]/ui'''$_POST['fullname'] ) ) );

        
// check if the user already exists.
        
$q $db->createSelectQuery();
        
$q->select'email' )->from'user' )->where$q->expr->eq'email'$q->bindValue$email ) ) );
        
$s $q->prepare();
        
$s->execute();
        
$r $s->fetchAll();

        if ( 
count$r ) > )
        {
            
$message "A user with e-mail address '{$email}' already exists.";
            return 
false;
        }

        
// generate password
        
mt_srandbase_convertsubstrmd5$email ), 0), 3610 ) * microtimetrue ) );
        
$a base_convertmt_rand(), 1036 );
        
$b base_convertmt_rand(), 1036 );
        
$password substr$b $a1);

        
// create user
        
$q $db->createInsertQuery();
        
$q->insertInto'user' )
          ->
set'email'$q->bindValue$email ) )
          ->
set'password'$q->bindValuemd5$password ) ) )
          ->
set'name'$q->bindValue$fullname ) );
        
$s $q->prepare();
        
$s->execute();

        
$fromAddress 'noreply@dev.omnomr';
        
$url 'dev.omnomr';

        
// send registration mail
        
$m = new ezcMailComposer;
        
$m->from = new ezcMailAddress$fromAddress'OmNomR' );
        
$m->addTo( new ezcMailAddress$email$fullname ) );
        
$m->subject 'Registration for OmNomR';
        
$m->plainText = <<<ENDT
Hello!

We've created a user account. Your password is:
    
{$password}

You can now login at http://
$url.
Please change your password to something you want it to be.

regards,
OnNomR

ENDT;
        
$m->build();

        
$s = new ezcMailMtaTransport();
        
$s->send$m );

        
$message "A user account has been created, see your mail to find further instructions.";
        return 
true;
    }

?>