Программный комплекс управления сайтом с использованием "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   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение