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