Anyone? Please help...

On May 22, 7:30 pm, Wayne <[email protected]> wrote:
> Greetings,
>
> I am new to CakePHP and am having trouble displaying the form
> validation errors from my registration form. After extensive research
> online, I feel I am missing something obvious. Maybe I am incorrectly
> assuming that Cake will display the error next to the appropriate form
> field.
>
> Here is my model:
>
> <?php
>
> class User extends AppModel {
>   var $name = 'User';
>   var $validate = array(
>     'username' => array(
>        'alphaNumeric' => array(
>           'rule' => 'alphaNumeric',
>           'required' => true,
>           'message' => 'Alphabets and numbers only'
>         ),
>         'between' => array(
>            'rule' => array('between', 5, 15),
>            'message' => 'Between 5 to 15 characters'
>         ),
>         'isUnique' => array(
>            'rule' => 'isUnique',
>            'message' => 'This username has already been taken.'
>            )
>         ),
>         'password' => array(
>            'rule' => array('minLength', '8'),
>            'message' => 'Mimimum 8 characters long'
>         ),
>         'email' => array(
>             'isUnique' => array(
>             'rule' => 'isUnique',
>             'message' => 'This username has already been taken.'
>              ),
>             'email' => array(
>             'rule' => array('email', true),
>             'message' => 'Please supply a valid email address.'
>              )
>          )
>    );
>
>   function validateLogin($data) {
>     $user = $this->find(array('username' => $data['username'],
> 'password' => md\
> 5($data['password'])), array('id', 'username'));
>     if(empty($user) == false)
>       return $user['User'];
>   return false;
>   }
>
> }
>
> ?>
>
> Here is my controller:
>
> <?php
> class UsersController extends AppController
> {
>   var $name = "Users";
>   var $helpers = array('Html', 'Form');
>   var $components = array('Auth');
>
>   function index()
>   {
>
>   }
>
>   function beforeFilter() {
>     $this->Auth->allow('register');
>     // $this->__validateLoginStatus();
>   }
>
>   function login() {
>     $this->layout='main';
>     $this->pageTitle='ShotSpin - Shop for products, Write Reviews, and
> Earn Commissions - Login';
>
>     if(empty($this->data) == false)
>       {
>         if(($user = $this->User->validateLogin($this->data['User'])) == true)
>           {
>             $this->Session->write('User', $user);
>             $this->Session->setFlash('You\'ve successfully logged in.');
>             $this->redirect('index');
>             exit();
>           }
>         else
>           {
>             $this->Session->setFlash('Sorry, the information you\'ve entered
> is incorrect.');
>             $this->redirect('login');
>             exit();
>           }
>       }
>   }
>
>   function logout() {
>     $this->Session->destroy('user');
>     $this->Session->setFlash('You\'ve successfully logged out.');
>     $this->redirect('login');
>   }
>
>   // register new users
>   function register() {
>     $this->layout='main';
>     $this->pageTitle='ShotSpin - Shop for products, Write Reviews, and
> Earn Commissions - Register';
>
>     // set the view of errors to false
>     $this->set('error', false);
>
>     // check if we have data
>     if (!empty($this->data)) {
>
>       // pass the data to the model so we can manually validate it
>       $this->User->set($this->data);
>
>       if ($this->User->validates()) {
>
>         // check if the passwords match
>         if ($this->data['User']['password'] == $this->Auth->password($this-
>
> >data['User']['password_confirm'])) {
>
>           // create the user
>           $this->User->create();
>           $this->User->save($this->data);
>           $this->redirect(array('action' => 'index'));
>           exit;
>         }
>
>       } else {
>         // we had a validation error so display that
>         $this->set('error', true);
>
>         // redirect them back to the registration page
>         $this->redirect('register');
>         exit;
>
>       }
>     }
>   }
>
>   function __validateLoginStatus()
>   {
>     if($this->action != 'login' && $this->action != 'logout')
>       {
>         if($this->Session->check('User') == false)
>           {
>             $this->redirect('login');
>             $this->Session->setFlash('You must be log in to view this
> page.');
>           }
>       }
>   }
>
> }
>
> ?>
>
> And here is my view for the registration page:
> <div id="search">
> <br>
> <span class="searchtext">Register</span>
> <br>
> <br>
> </div>
>
> <div id="content">
>
> <?php
> if ($error){?>
> <p class="error">There are some problems with your registration.</p>
> <?php }
> echo $form->create('User', array('action' => 'register'));
> echo $form->input('firstname', array('label' => 'First Name'));
> echo $form->input('lastname', array('label' => 'Last Name'));
> echo $form->input('email');
> echo $form->input('username');
> echo $form->input('password');
> echo $form->input('password_confirm', array('type' => 'password',
> 'label' => 'Confirm Password'));
> echo $form->submit();
> echo $form->end();
> ?>
>
> </div>
>
> Any insight you can offer would be much appreciated.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to