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

.\aplication\classes\valid.php




.. \aplication\classes\valid. php

<? php defined('SYSPATH') or die('No direct script access. ');

class Valid extends Kohana_Valid

{

       public static function check_id($value, $tablename)

       {

                   $id = (int) $value;

                   if (! preg_match(" /^[a-z_]+$/i", $tablename)) return FALSE;

                   $count = DB:: select(array('COUNT(" *" )', 'total_count'))

                              -> from($tablename)

                              -> where('id', '=', $id)

                              -> execute()

                              -> get('total_count');

                   if ($count! = 1) return FALSE;

                   return TRUE;

       }         

}

.. \aplication\classes\controller\account. php

<? php defined('SYSPATH') or die('No direct script access. ');

class Controller_Account extends Loginverification

{

public $template = 'title';

public function action_index()

{  

   $data=array();

    $myuser = new Model_Myuser();

    $data['username'] = $myuser-> displayusername();  // в поле username массива data сохранится имя текущего пользователя     

    if(isset($_POST['btnpassremove']))

    {

       $oldpass = Arr:: get($_POST, 'oldpass', '');

       $newpass1 = Arr:: get($_POST, 'newpass1', '');

       $newpass2 = Arr:: get($_POST, 'newpass2', '');     

       if($myuser-> saveNewPass($oldpass, $newpass1, $newpass2))

       {

           $data['ok']=''; // создание поля ok в массиве data в случае если функции saveNewPass вернулось true(1)

       }

       else

       {

           $data['errors']=$myuser-> getErrors(); // создание поля errors в массиве и запись ошибок класса myuser в это поле

       }

    }

    $this-> template-> content=View:: factory('accountview', $data); // вывод выбранного вида и массива Data

}   

}

.. \aplication\classes\controller\ajax. php

<? php defined('SYSPATH') or die('No direct script access. ');

class Controller_Ajax extends Controller {

       public function action_emailunique()

       {

                   $email = Arr:: get($_POST, 'email', '');

                   $myuser = new Model_Myuser();

                   $res = $myuser-> username_unique($email);

                   echo json_encode(array('result' => $res));

       }

public function action_checkOldPass() 

       {

                   $oldpass = Arr:: get($_POST, 'oldpass', ''); // передача значения поля oldpass в переменную

                   $myuser = new Model_Myuser(); // объявление класса Model_Myuser

                   $res = $myuser-> checkOldPass($oldpass); // запись true или false в переменную res по результату проверки метода checkOldPass модели myuser

                   echo json_encode(array('result' => $res)); // вывод в формате json_encode true или false

       }

}

 

.. \aplication\classes\controller\authformer. php

<? php defined('SYSPATH') or die('No direct script access. ');

class Controller_Authformer extends Controller_Template   // контроллер управления авторизацией пользователей

//расширяется от контроллера Template (внутреннего файла инструкций Kohana)

{

public $template = 'title'; // подключение базового вида

 

public function action_index() // метод который будет выполнятся по умолчанию

{

   $notcapture=Security:: xss_clean(Arr:: get($_POST, 'authbutton', '')); // берем значение нажатой кнопки входа, сделано это с главной форм ыили с быстрой формы

   $captcha = Captcha:: instance();  

   $captcha_image = $captcha-> render();

   $data=array();           // инициализация пустого массива           

   $auth = Auth:: instance(); // объявление внутреннего класса авторизации

   if($auth-> logged_in())     // если пользователь авторизован

   {

         request:: initial()-> redirect(''); // переадресовать его на главную страницу

   }

   else       // иначе

   {

           if(isset($_POST['authbutton']))  // если нажата кнопка authbutton

           { 

               $login=Security:: xss_clean(Arr:: get($_POST, 'login', ''));   // в переменную логин записать значение поля логин

               $password=Security:: xss_clean(Arr:: get($_POST, 'password', ''));   // в переменную пароль записать значение поля пароль

               $capturenka=Captcha:: valid(Security:: xss_clean(Arr:: get($_POST, 'captcha', '')));

               if ($notcapture==" " ) $capturenka=true; // если нажатие с быстрой формы входа, можно картинку не спрашивать

               if(! $capturenka)

                   {

                       $data[" badimagecode" ]=" ";

                   }   

                   else

                   {

                       if($auth-> login($login, $password))              // проверка имени и пароля в базе данных таблицы users внутренним методом Kohana

                       {

                           $session = Session:: instance(); // Создание эземпляра класса Session на основе метода Instance

                           $auth_redirect = $session-> get('auth_redirect', ''); // чтение записанного адреса(котнроллера childrenbefore)

                           $session-> delete('auth_redirect');    // удаление сессии

                           Request:: initial()-> redirect($auth_redirect);    // переадресация пользователя на страницу которую он хотел посетить до авторизации

                       }

                       else

                       {

                           $data[" errors" ]= " ";       // если пользователь не ввел логин и пароль либо ввел но их нету в базе запистаь пустую строку в массив       

                       }

                   }

           }

   }       

    $this-> template-> content = View:: factory('authview', $data)-> bind('captcha_image', $captcha_image);   // вывод вида

}

 

public function action_logout() // функция разлогирования

{

      $auth=Auth:: instance(); // объявление класса авторизации

   if($auth-> logout());    // выполнение внутреннего метода kohana logout

   {

   $this-> template-> content=" Вы вышли из системы"; // вывод в качестве контента сообщения

   request:: initial()-> redirect('');   // передаресация на главную страницу

   }

}

public function action_form()

       {

                   //Закрываем доступ к данному методу из адресной строки

                   if($this-> request-> is_initial())

                   {

                              throw new HTTP_Exception_404('File not found! ');

                   }

                   $this-> auto_render = FALSE; //не использовать главный шаблон вида " title"

                   $auth = Auth:: instance();

                   if($auth-> logged_in())

                   {

                              $this-> response-> body(View:: factory('formloginout'));

                   }

                   else

                   {

                              $this-> response-> body(View:: factory('formloginin'));

                   }

       }

 

public function action_reg()  // функция регистрации

{

   $data = array(); // инициализация пустого массива

   $captcha = Captcha:: instance();  

   $captcha_image = $captcha-> render();

   if(isset($_POST['regbutton'])) // елси нажата кнопка regbutton

   {

       $email =Security:: xss_clean(Arr:: get($_POST, 'email', '')); // считать значение из поля email

       $password = Security:: xss_clean(Arr:: get($_POST, 'password', '')); // аналогично

       $regcodevalue = Security:: xss_clean(Arr:: get($_POST, 'regcodevalue', ''));

       $capturenka=Captcha:: valid(Security:: xss_clean(Arr:: get($_POST, 'captcha', '')));

       if(! $capturenka) {$data[" badimagecode" ]=" "; }

       else

       {       

           $register = new Model_Reg();    // объявление модели регистрации

           if($register-> reg($email, $password, $regcodevalue))  // запись в переменную результата функции reg в модели регистрации

           // и отправка на вход функции введенных значений

           {

               $data[" regok" ] = " ";   // елси функция вернула true создадим пустую строку в поле массива regok

           }

           else

           {

               $data[" errors" ] = $register-> errors; // если функция вернула ошибку валидации записать ошибку в массив

           }

       }

   }

 // $view_my_form = View:: factory('v_myform')-> bind('captcha_image', $captcha_image);

 // $this-> template-> content = $view_my_form;    

$this-> template-> content = View:: factory('regview', $data)-> bind('captcha_image', $captcha_image); // вывод вида regview и массива data

}

 

public function action_wantnewpassword()

       {

       $data = array();

       if(isset($_POST['passubmit']))

       {

           $email = Security:: xss_clean(Arr:: get($_POST, 'email', ''));

           $register = new Model_Reg();

           if($register-> wantnewpassword($email))

           {

               $data[" ok" ] = " ";

           }

           else

           {

               $data[" error" ] = " ";

           }

       }

       $this-> template-> content = View:: factory('rempassview', $data);

   }

 

public function action_checkreg()

{

   $kolan = $this-> request-> param('id');

   $data = array();

   $register = new Model_Reg();

   if($register-> regcomplete($kolan))

   {

         $data[" ok" ]=" ";

   }

   else

   {

       $data[" error" ]=" ";

   }

   $this-> template-> content = View:: factory('completeregisterview', $data);

}

 

public function action_checkcode($code)

{

   $data = array();

   $register = new Model_Reg();

   if($register-> updatepassword($code))

   {

       $data[" ok" ]=" ";

   }

   else

   {

       $data[" error" ]=" ";

   }

   $this-> template-> content = View:: factory('checkcodeview', $data);

}

}

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...