.\aplication\classes\model\namevalid.php
.. \aplication\classes\model\namevalid. php <? php defined('SYSPATH') or die('No direct script access. '); class Model_Namevalid { protected $errors=array(); public function MatNameValid($materialname) { $vData = array(" materialname" => $materialname, ); $validation = Validation:: factory($vData); $validation-> rule('materialname', 'not_empty'); $validation-> rule('materialname', 'min_length', array(': value', '3')); $validation-> rule('materialname', 'max_length', array(': value', '20')); if(! $validation-> check()) { $this-> errors = $validation-> errors('addmatErrors'); return FALSE; } return TRUE; }
public function TagNameValid($tags) { $vData = array(" tags" => $tags, ); $validation = Validation:: factory($vData); $validation-> rule('tags', 'not_empty'); if(! $validation-> check()) { $this-> errors = $validation-> errors('addmatErrors'); return FALSE; } return TRUE; } public function getErrors() {return $this-> errors; }} .. \aplication\classes\model\reg. php <? php defined('SYSPATH') or die('No direct script access. '); class Model_Reg { public function getErrors() // функция обработки ошибок валидации { return $this-> errors; // функция вернет записанную ошибку } public function reg($email, $password, $regcodevalue, $data = array()) // получаем введенные значения и пустой массив { $data['password'] = $password; // в массив data поле пароля записываем введенный пароль $data = Arr:: extract($data, array('password')); // извлекаем пароль из массива $validation = Validation:: factory($data); // объявляем метод вализации переменной data $validation-> rule('password', 'not_empty'); $validation-> rule('password', 'regex', array(': value', '/^[A-z0-9_]++$/iD')); $validation-> rule('password', 'min_length', array(': value', '7')); $validation-> rule('password', 'max_length', array(': value', '16'));
if(! $validation-> check()) { $this-> errors = $validation-> errors('catErrors');
return FALSE; } $regcode = new Model_Regcode(); $myuser = new Model_Myuser(); $regcode-> code = $regcodevalue; try { $regcode-> check(); // метод чек проверяет параметры на правила } catch(ORM_Validation_Exception $e) { $this-> errors = $e-> errors('validation'); return FALSE; } // создание пользователя $myuser-> username = $email; $myuser-> email = $email; // берем сгенерированный пароль в размере 16 символов $generation = new Model_Generation(); $key = $genpass = $generation-> PasswordGeneration(16); // хэшируем данный пароль для дальнейшего его поступления в бд $auth = Auth:: instance(); $myuser-> password = $auth-> hash_password($password); try { if(isset($email)and(isset($password))) { $myuser-> save(); // узнаем id пользователя $usertemp = ORM:: factory('myuser', array('username'=> $email)); $adduserid = $usertemp-> id;
// для проверки ида нового юзера на экране // var_dump($adduserid); // exit; // Создаем роли $addrole = new Model_Addrole(); $addrole-> user_id = $adduserid; if ( ($key! =0)or($key! ='-1')or($key! =2) ) { $addrole-> role_id = $key; } $addrole-> save(); // Диактивация регистрационного кода $regcode-> disactive_code($regcodevalue, $adduserid); // Отправка эл. почты $sendtomail = new Model_Sendtomail(); $to = $email; $from = 'skutorlike@mail. ru'; //$subject = 'Подтверждение регистрации в КГК'; /* $message = " Ваш логин: $email, Ваш пароль: $password < br> < br> Ссылка для подтверждения аккаунта: < a href='http: //localhost/authformer/checkreg/$key'> ПОДТВЕРДИТЬ < /a> "; */ $subject = Kohana:: message('emailthemes/register', 'subject'); $data = array ('email' => $email, 'password' => $password, 'key' => $key ); $message = View:: factory('emailbody/register', $data); $sendtomail-> sendemail($to, $from, $subject, $message, true); unset($key); unset($genpass); return TRUE; } } catch(ORM_Validation_Exception $e) { $this-> errors = $e-> errors('validation'); return FALSE; }
}
public function regcomplete($kolan) { if(($kolan! ='-1')or($kolan! ='0')or($kolan! ='all')or($kolan! ='1')) { $result = DB:: select() -> from('roles_users') -> where('role_id', '=', Security:: xss_clean($kolan)) -> execute(); if (count($result) == 0) { return false; throw new Exeption('Данный ключ не существует'); } else { $query = DB:: update('roles_users') -> set(array('role_id' => '1')) -> where('role_id', '=', $kolan); $query-> execute(); return true; } } } public function updatepassword($code) { $usertemp = ORM:: factory('myuser', array('rempass'=> $code)); if(! $usertemp-> loaded()) { return FALSE; }
$generation = new Model_Generation(); $genpass = $generation-> PasswordGeneration(8); //Хеширование пароля $auth = Auth:: instance(); $usertemp-> password = $auth-> hash_password($genpass); //Очистка кода восстановления $usertemp-> rempass = NULL; $usertemp-> save(); $sendtomail = new Model_Sendtomail(); //Отправка эл. почты $email = $usertemp-> username; $from = 'skutorlike@mail. ru'; //$subject = 'Авторизационные данные обновлены'; $subject = Kohana:: message('emailthemes/rememberpasswordcomplete', 'subject'); //$message = " Ваш логин: $email Ваш пароль: $genpass"; $data = array ('email' => $email, 'genpass' => $genpass ); $message = View:: factory('emailbody/rememberpasswordcomplete', $data); $sendtomail-> sendemail($email, $from, $subject, $message, TRUE); return TRUE; } public function wantnewpassword($email) { $usertemp = ORM:: factory('myuser', array('username'=> $email));
if(! $usertemp-> loaded()) { return FALSE; } $generation = new Model_Generation(); $genpass = $generation-> PasswordGeneration(8); $usertemp-> rempass = $genpass; $usertemp-> save(); $sendtomail = new Model_Sendtomail(); //Отправка эл. почты $from = 'skutorlike@mail. ru'; //$subject = 'Восстановление пароля'; $subject = Kohana:: message('emailthemes/rememberpassword', 'subject'); //$message = " Перейдите по ссылке < a href='http: //localhost/authformer/checkcode/$genpass'> Восстановить пароль< /a> "; $data = array ('genpass' => $genpass); $message = View:: factory('emailbody/rememberpassword', $data); $sendtomail-> sendemail($email, $from, $subject, $message, TRUE); return TRUE; } }
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|