<?php class User_Controller extends Glowna_Controller { public function __construct() { parent::__construct(); $this-> session = Session:: instance(); $this-> auth = Auth :: instance(); } public function rejestracja() { $post = new Validation($_POST); $post ->pre_filter('trim') ->pre_filter('htmlspecialchars') ->add_rules('email', 'required', 'length[4,127]', 'valid::email') ->add_rules('username', 'required', 'length[3,32]', 'chars[a-zA-Z0-9_.-]') ->add_rules('password', 'required', 'length[5,42]') ->add_rules('password2', 'required', 'matches[password]') if($post->validate()) { $user = new User_Model; $user -> load_data($post -> as_array()); if($user->save() && $user -> add(ORM :: factory('role', 'login'))) { $msg = Kohana :: lang('register.successful'); } else { $msg = Kohana :: lang('register.error'); } Session :: instance() -> set_flash('flash', $msg); url :: redirect('adm/glowna'); } else { $view = new View('layout/adm2'); $view->author = Kohana::config('settings.author'); $view->charset = Kohana::config('settings.charset'); $view->copyright = Kohana::config('settings.copyright'); $view->library = new Heniek; $view->content = new View('adm/rejestracja'); $view->content -> post = $post; $view->content -> errors = $post -> errors(); $view->render(true); } } public function __email_exists($validator, $field) { $email = $validator -> $field; $email_exists = (bool) ORM::factory('user')->where('email', $email)->count_all(); if($email_exists) { $validator -> add_error($field, 'email_exists'); } } public function __user_exists($validator, $field) { $login = $validator -> $field; if(ORM :: factory('user') -> username_exists($login)) $validator -> add_error($field, 'user_exists'); } public function loguj() { if($this -> auth -> logged_in()) url :: redirect('adm/glowna'); $post = new Validation($_POST); $post -> pre_filter('trim') -> pre_filter('htmlentities') -> add_rules('username', 'required', 'length[3, 32]') -> add_rules('password', 'required', 'length[3, 50]'); if($post->validate()) { $user = ORM :: factory('user', (string)$post['username']); if(!$this -> auth -> login($user, (string)$post['password'])) Session :: set_flash('login_error', Kohana :: lang('login.error')); } else { Session :: set_flash('login_error', Kohana :: lang('login.error')); } url :: redirect('adm/glowna'); } } ?>
Chciałbym rozszerzyć motodę loguj o możliwość zapamiętania logowania. Chciałbym gdyby ktoś zapodał mi link do jakiejś strony z opisem albo pokazał jakiś suchy przykład. W configu ustawiłem sobie odpowiedni czas tego "pamiętania".