I recently wrote a code for an email verification system using cakephp. Well, before you use it there are few things. This is written by a cake noob so may not be the best there is. I have not written it as a general stand alone piece of code. So its need modifications for use. And I am a sucker when it comes to commenting and formatting my code so please dont mind. My thanks to Edward and the CakePhP Google Groups. And finally cake rocks!!!
cheers
Database Table
A basic user table with the following columns
id - primary key and auto increment
username
email
password
[...]
tokenhash*
activate *
*columns with which we are concerned with
Controller code
<?php
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Form');
var $components = array('Email');
[...]
function register() {
if (!empty($this->data)) {
$this->User->data = $this->data;
$hash=sha1($this->data['User']['username'].rand(0,100));
//Create Token using form data and random number to ensure its unique and cannot be replicated
$this->User->data['User']['tokenhash']=$hash;
if ( $this->User->validates()) {
$this->User->save($this->data);
//Save all form data including the tokenhash
$ms='Click on the link below to complete registration ';
$ms.='www.sitename.com/users/verify/t:'.$hash.'/n:'.$this->data['User']['username'].'';
$ms=wordwrap($ms,70);
//create mail body
$this->Email->from = 'yourName <email>';
$this->Email->to=$this->data['User']['email'];
$this->Email->subject = 'Confirm Registration for Niwiki - reg.';
$this->Email->send($ms);
//send mail
$this->Session->setFlash('Please Check your email for validation Link');
$this->redirect('/users/login');
exit;
}
}
}
Read the rest of this entry »
Recent Comments