Диплом: Автоматизация и обеспечение информационной безопасности приема и анализа заявок технической поддержки в АКБ «ФридомФинанс»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
106
$mypars = print_r($myparam, true);
$myw1 = "200";
$myw2 = "350;background-color:#f2f2f2";
$myw3 = "200";
$myw4 = "200;background-color:#f2f2f2";
$myw5 = "200";
$mymess = "<div style=\"white-space: nowrap;\">
<span style=\"width:$myw1;display:inline-block;\" >$mydate:
Redirect</span>
<span style=\"width:$myw2;display:inline-block;\" >Where: ".(
$mywhere != "" ? "\"$mywhere\"" : '')."</span>
<span style=\"width:$myw3;display:inline-block;\" >".( $myfrom
!= "" ? "\"$myfrom\"" : '')."</span>
<span style=\"width:$myw4;display:inline-block;\" >".( $mypage
!= "" ? "\"$mypage\"" : '')."</span>
<span style=\"width:$myw5;display:inline-block;\" >".( $mypars
!= "" ? "\"$mypars\"" : '')."</span>
</div>";
file_put_contents($_SESSION['doc_root']."/logs/redirect.html", $mymess,
FILE_APPEND);
}
public static function err2Log($myerr)
{
$mydate = date('Y-m-d H:i:s');
if(isset($_SERVER['REDIRECT_URL']))
$myfrom = $_SERVER['REDIRECT_URL'];
else
$myfrom = '';
$mypars = print_r($myparam, true);
$myw1 = "250px";
$myw2 = "300px";
$mymess = "<div style=\"white-space: nowrap;\">
<span style=\"width:$myw1;display:inline-block;\"
>$mydate</span>
<span style=\"width:$myw2;display:inline-block;\" >$myerr</span>
</div>";
file_put_contents($_SESSION['doc_root']."/logs/error.html", $mymess,
FILE_APPEND);
}
static function start()
{
require_once '/../allowed.php';
// контроллер и действие по умолчанию
$mycontroller_name = 'Main';
$myaction_name = 'index';
if(trim($_SESSION['site_prefix']) != "")
$myurl =
preg_replace("@^".preg_quote($_SESSION['site_prefix'])."@isU","",$_SERVER['REQUEST_
URI']);
else
$myurl = $_SERVER['REQUEST_URI'];
$myroutes = explode('/', $myurl);
107
// Имя контроллера
if ( !empty($myroutes[1]) )
{
$mycontroller_name = strtolower($myroutes[1]);
}
// Имя экшена
if ( !empty($myroutes[2]) )
{
$myaction_name = strtolower($myroutes[2]);
}
// Формируем параметры
$mycnt = count($myroutes);
$mypars = array();
if($mycnt > 3)
for($myi=3,$myj=0; $myi<$mycnt; $myi++,$myj++)
$mypars[$myj]=preg_replace("@\?.*$my@isU","",$myroutes[$myi]);
// Валидация пользователя + админ?
$myvalid = Route::valU(); // Пользователь есть в базе?
if($myvalid[0])
$myuserType = Model::getUType($_SESSION['user_id']); // Получаем
тип пользователя
else
$myuserType = 0; // обычный пользователь
// Проверка допустимых маршрутов
switch($myuserType)
{
case 0: $myallowedArr = $myallowedAll; break;
case 1: $myallowedArr = $myallowedAdmin; break;
case 2: $myallowedArr = $myallowedWorkers; break;
case 3: $myallowedArr = $myallowedRegistered; break;
default: $myallowedArr = $myallowedAll; break;
}
$myallowed = false;
foreach($myallowedArr as $myc_a)
{
$myc_a = explode('#', $myc_a);
if(strtolower($myc_a[0])==$mycontroller_name &&
strtolower($myc_a[1])==$myaction_name)
{
$myallowed=true;
break;
}
}
// Перенаправление недозволенных маршрутов на дефолтный экшн контроллера
if(!$myallowed)
{
switch($myuserType)
{
case 0: $mycontr = "main"; break;
108
case 1: $mycontr = "admin"; break;
case 2: $mycontr = "worker"; break;
case 3: $mycontr = "registered"; break;
default: $mycontr = "main"; break;
}
if($_SESSION['mydebug'] && $_SESSION['show_err_routes'])
{
echo "user_id=".$_SESSION['user_id']." and
usertype=".$myuserType." not allowed ".$mycontroller_name.
"#".$myaction_name."<br><br>";
echo "Check for
".$mycontroller_name."#".$myaction_name."<br><br>";
foreach($myallowedArr as $myc_a)
{
$myc_a = explode('#', $myc_a);
echo
strtolower($myc_a[0])."#".strtolower($myc_a[1])."<br>";
}
exit();
}
else
{
Route::redirectTo('/'.$mycontr.'/index', 'route.php:###0004');
}
}
// Добавляем префиксы
$mymodel_name = 'Model_'.$mycontroller_name;
$mycontroller_name = 'Controller_'.$mycontroller_name;
$myaction_name = 'action_'.$myaction_name;
// Присоединяем файл с классом модели (модели может и не быть)
$mymodel_file = strtolower($mymodel_name).'.php';
$mymodel_path = "application/models/".$mymodel_file;
$mymodel = NULL;
if(file_exists($mymodel_path))
{
include "application/models/".$mymodel_file;
$mymodel = new $mymodel_name;
}
else
{
Route::err2Log("No model \"$mymodel_name\"");
}
// Присоединяем файл контроллера
$mycontroller_file = strtolower($mycontroller_name).'.php';
$mycontroller_path = "application/controllers/".$mycontroller_file;
if(file_exists($mycontroller_path))
{
include "application/controllers/".$mycontroller_file;
}
else
109
{
Route::Err404("###0010");
}
// Создаем контроллер
$mycontroller = new $mycontroller_name($myvalid[0], $mymodel,
$mymodel_name, $mycontroller_name, $myaction_name, $mypars);
$myaction = $myaction_name;
if(method_exists($mycontroller, $myaction))
{
// Вызываем действие контроллера
$mycontroller->$myaction();
}
else
{
Route::Err404("###0011");
}
Route::mydebug($mymodel_name, $mycontroller_name, $myaction_name,
$mypars);
}
function Err404($myparam)
{
$myhost = 'http://'.$_SERVER['HTTP_HOST'].$_SESSION['site_prefix'].'/';
header('HTTP/1.1 404 Not Found');
header("Status: 404 Not Found");
Route::redirectTo('404', 'route.php:###0001', $myparam);
}
function redirectTo($mypage, $mywhere='', $myparam='')
{
if($_SESSION['mydebug'])
Route::red2Log($mypage, $mywhere, $myparam);
$myhost = 'http://'.$_SERVER['HTTP_HOST'].$_SESSION['site_prefix'].'/';
header('Location:'.$myhost.preg_replace("@^\/@isU","",$mypage));
}
}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)