Программный комплекс управления сайтом с использованием "Kohana Framework"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



xecute();

$width = $node[right_key] - $node[left_key] + 1;

// Обновление последующих узлов

$this->modifyNodes((int)$node[right_key], -$width);

//DB::query(NULL, COMMIT)->execute();

}function check($thorough=FALSE)

{

$QTblName = Database::instance()->quote_table($this->table);

// Тест 1

$query =

SELECT id.$QTblName.MOD(right_key - left_key, 2) = 0;

$result = DB::query(Database::SELECT, $query)->execute();(count($result) != 0)new Exception(Test 1 integrity check failed.);

// Тест 2

$query =

SELECT id.$QTblName.MOD(left_key - level + 2, 2) = 0;

$result = DB::query(Database::SELECT, $query)->execute();(count($result) != 0)new Exception(Test 2 integrity check failed.);

// Тест 3($thorough)

{

$query =

SELECT t1.id, COUNT(t1.id) AS rep, MAX(t3.right_key) AS max_right

.$QTblName. AS t1,

.$QTblName. AS t2,

t2.left_key">.$QTblName. AS t3.left_key <> t2.left_key

t2.right_key">AND.left_key <> t2.right_key

t2.left_key">AND.right_key <> t2.left_key

t2.right_keyBY.id_right SQRT( 4 * rep + 1 ) + 1;

$result = DB::query(Database::SELECT, $query)->execute();

(count($result) != 0)new Exception(Test 3 integrity check failed.);

}

// Тест 4, проверка level

$query =

SELECT node.id as id, node.level as level

.$QTblName. AS node,

.$QTblName. AS parentnode.left_key BETWEEN parent.left_key AND parent.right_keyBY node.idCOUNT(parent.name) - 1 != levelBY node.left_key;

$result = DB::query(Database::SELECT, $query)->execute();(count($result) != 0)new Exception(Test 4 integrity check failed.);

}

}

..\aplication\classes\valid.php

<?php defined(SYSPATH) or die(No direct script access.);Valid extends Kohana_Valid

{static function check_id($value, $tablename)

{

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

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

>from($tablename)

>where(id, =, $id)

>execute()

>get(total_count);($count != 1) return FALSE;TRUE;

}

}

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

<?php defined(SYSPATH) or die(No direct script access.);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.);Controller_Ajax extends Controller {function action_emailunique()

{

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

$myuser = new Model_Myuser();

$res = $myuser->username_unique($email);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 модели myuserjson_encode(array(result => $res)); // вывод в формате json_encode true или false

}

}

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

<?php defined(SYSPATH) or die(No direct script access.);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

Copyright © 2008-2014 geum.ru   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение