Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

.\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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...