Программный комплекс управления сайтом с использованием "Kohana Framework"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Вµтоду checkOldPass выше
$validation->rule(newpass1, not_empty);
$validation->rule(newpass1, regex, array(:value, /^[A-z0-9_]++$/iD));
$validation->rule(newpass1, matches, array(:validation, newpass1, newpass2)); // сравнение newpass1 и newpass2 на идентичность
$validation->rule(newpass1, min_length, array(:value, 7));
$validation->rule(newpass1, max_length, array(:value, 16));(!$validation->check()) // запуск внуртеннего метода проверки валидации. Если ошибочно вернет false и превратится в true
{
$this->errors = $validation->errors(catErrors); // у текущего класса(myuser) в свойство errors (объявлено выше) записываются ошибки по причине которых не прошла валидация
return FALSE; // вернет методу saveNewPass тем самым завершит выполнение
}
$auth = Auth::instance(); // действие описано в комментариях метода displayusername
$userId = $auth->get_user();
$usertemp = ORM::factory(myuser, array(id=>$userId)); // поиск пользователя с текущим идентификатором
$usertemp->password = $auth->hash_password($newpass1); // запись на место его пароля нового в зашифрованном виде
$usertemp->save(); // сохранение действия записи
return TRUE; // прекращение выполнения функции и передача ей true(1)
}
public function getErrors()
{
return $this->errors; // вовращении функции существующих ошибок в model Myuser
}
}
..\aplication\classes\model\namevalid.php
<?php defined(SYSPATH) or die(No direct script access.);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));(!$validation->check())
{
$this->errors = $validation->errors(addmatErrors);
return FALSE;
}TRUE;
}
public function TagNameValid($tags)
{
$vData = array("tags" => $tags,);
$validation = Validation::factory($vData);
$validation->rule(tags, not_empty); (!$validation->check())
{
$this->errors = $validation->errors(addmatErrors);
return FALSE;
}TRUE;
}
public function getErrors()
{return $this->errors;}}
..\aplication\classes\model\reg.php
<?php defined(SYSPATH) or die(No direct script access.);Model_Reg
{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);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
";
*/
$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 = "Ваш л
Copyright © 2008-2014 geum.ru рубрикатор по предметам рубрикатор по типам работ пользовательское соглашение