Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- create controller/register.php
- <?php defined('SYSPATH') or die('No direct script access.');
- class Controller_Register extends Controller_Template
- {
- public $template = 'register';
- function action_index()
- {
- $this->template->form = array
- (
- 'username' => '',
- 'password' => '',
- 'email' => ''
- );
- $this->template->errors = $this->template->form;
- if (Auth::instance()->logged_in() != 0)
- {
- Request::instance()->redirect('/');
- }
- if ($_POST)
- {
- $user = ORM::factory('user');
- $post = $user->validate_create($_POST);
- if ($post->check())
- {
- $user->username = $_POST['username'];
- $user->email = $_POST['email'];
- $user->password = $_POST['password'];
- $user->save();
- $user->add('roles',ORM::factory('role', array('name' => 'login')));
- echo 'SAVED';
- }
- else
- {
- $this->template->form = arr::overwrite($this->template->form, $post->as_array());
- $this->template->errors = arr::overwrite($this->template->errors, $post->errors('register'));
- }
- }
- }
- }
- ?>
- create model/user.php (for validate of $_POST)
- <?php defined('SYSPATH') or die('No direct script access.');
- class Model_User extends Model_Auth_User
- {
- protected $_rules = array
- (
- 'username' => array
- (
- 'not_empty' => NULL,
- 'min_length' => array(4),
- 'max_length' => array(32),
- 'regex' => array('/^[-\pL\pN_.]++$/uD')
- ),
- 'password' => array
- (
- 'not_empty' => NULL,
- 'min_length' => array(5),
- 'max_length' => array(42)
- ),
- 'email' => array
- (
- 'not_empty' => NULL,
- 'min_length' => array(5),
- 'max_length' => array(127),
- 'validate::email' => NULL
- )
- );
- protected $_callbacks = array
- (
- 'username' => array('username_available'),
- 'email' => array('email_available')
- );
- public function validate_create(&$array)
- {
- $array = Validate::factory($array)
- ->filter(TRUE, 'trim')
- ->rules('password', $this->_rules['password'])
- ->rules('username', $this->_rules['username'])
- ->rules('email', $this->_rules['email']);
- foreach ($this->_callbacks as $field => $callbacks)
- {
- foreach ($callbacks as $callback)
- {
- $array->callback($field, array($this, $callback));
- }
- }
- return $array;
- }
- }
- ?>
- create views/register.php
- <?php defined('SYSPATH') or die('No direct access allowed.');
- echo form::open(null);
- echo form::label('username', 'Name: ');
- echo form::input('username', $form['username'], array('id' => 'username'));
- echo (empty($errors['username'])) ? '' : $errors['username'];
- echo '<br />';
- echo form::label('password', 'Key: ') ;
- echo form::password('password', $form['password'], array('id' => 'password'));
- echo ( empty ($errors['password'])) ? '' : $errors['password'];
- echo '<br />';
- echo form::label('email', 'E-Mail: ');
- echo form::input('email', $form['email'], array('id' => 'email'));
- echo (empty($errors['email'])) ? '' : $errors['email'];
- echo '<br />';
- echo '<br />';
- echo form::submit('Register', 'Register');
- echo form::close();
- ?>
- create controller/login.php
- <?php defined('SYSPATH') or die('No direct access allowed.');
- class Controller_Login extends Controller_Template
- {
- public $template = 'login';
- public function action_index()
- {
- if (Auth::instance()->logged_in())
- {
- Request::instance()->redirect(Session::instance()->get('requested_url', '/'));
- }
- else
- {
- if ($_POST)
- {
- $remember = isset($_POST['remember']) ? TRUE : FALSE;
- $auth = Auth::instance();
- if ($auth->login($_POST['username'], $_POST['password'], $remember))
- {
- Request::instance()->redirect(Session::instance()->get('requested_url', '/'));
- }
- else
- {
- echo 'ERROR';
- }
- }
- }
- }
- }
- ?>
- create views/login.php
- <?php defined('SYSPATH') or die('No direct access allowed.');
- echo form::open(null);
- echo form::label('username', 'Name: ');
- echo form::input('username','',array('id' => 'username'));
- echo '<br />';
- echo form::label('password', 'Key: ');
- echo form::password('password','',array('id' => 'password'));
- echo '<br />';
- echo form::label('remember', 'Remember me: ');
- echo form::checkbox('remember', '1', FALSE, array('id' => 'remember'));
- echo '<br />';
- echo form::submit('login', 'Login');
- echo form::close();
- ?>
- In each Controller you use before() for create session and logged in
- class Controller_Portal extends Controller_Template
- {
- public function before()
- {
- parent::before();
- $this->session = Session::instance();
- $auth = Auth::instance();
- $auth->auto_login();
- if ($auth->logged_in())
- {
- $this->user = Auth::instance()->get_user();
- }
- }
- public function action_index()
- {
- if (Auth::instance()->logged_in())
- {
- echo $this->user->username;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment