chdir(explode('vendor/', __DIR__)[0]); require_once 'vendor/autoload.php'; Router::init(); } $ans = array(); try { $db =& Db::pdo(); } catch (Exception $e) { $db = false; } if (!$db) { return Ans::err($ans, 'Нет соединения с базой данных. Сессия только в браузере.'); } $session_id = View::getCookie('infra_session_id'); $session_pass = View::getCookie('infra_session_pass'); $timelast = isset($_REQUEST['time']) ? (int) $_REQUEST['time'] : View::getCookie('infra_session_time'); if (!$timelast) { $timelast = 0; } $ans['timelast'] = $timelast; $time = time(); //время синхронизации и время записываемых данных, устанавливается в cookie $ans['time'] = $time; $list = Load::json_decode($_POST['list']); Each::exec($list, function &(&$li) use($time) { $li['time'] = $time; //У каждого сета добавляем его момет, что бы он начал попадат в выборку по времени в своём периуде $r = null; return $r; }); if ($session_id) {
<?php namespace infrajs\view; use infrajs\ans\Ans; if (!is_file('vendor/autoload.php')) { chdir('../../../../'); require_once 'vendor/autoload.php'; } $ans = array(); $ans['title'] = 'Проверка методов view'; View::setCookie('test', true); $val = View::getCookie('test'); if (!$val) { return Ans::err($ans, 'Неудалось восстановить значение из COOKIE'); } return Ans::ret($ans);
public static function getLink($email = false) { $host = View::getHost(); $path = View::getRoot(); if ($email) { $user = Session::getUser($email); if (!$user) { return 'http://' . $host . '/' . $path; } $pass = md5($user['password']); $id = $user['session_id']; } else { $pass = View::getCookie(Session::getName('pass')); $id = View::getCookie(Session::getName('id')); } $link = 'http://' . $host . '/' . $path . '?-session/login.php?id=' . $id . '&pass=' . $pass; return $link; }
/** * Access::admin(true) - пропускает только если ты администратор, иначе выкидывает окно авторизации * Access::admin(false) - пропускает только если ты НЕ администратор, иначе выкидывает окно авторизации * $ans выводится в json если нажать отмена * Access::admin(array('login','pass'));. */ public static function admin($break = null, $ans = array('msg' => 'Требуется авторизация', 'result' => 0)) { $data = static::$conf['admin']; $_ADM_NAME = $data['login']; $_ADM_PASS = $data['password']; $admin = null; //Неизвестно $realkey = md5($_ADM_NAME . $_ADM_PASS . $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']); if (is_array($break)) { Nostore::on(); //Если имя в конфиге указано, и переданные данные в массиве соответствуют $admin = $_ADM_NAME && $break[0] === $_ADM_NAME && $break[1] === $_ADM_PASS; if ($admin) { View::setCookie('infra_admin', $realkey); } else { View::setCookie('infra_admin'); } } else { $key = View::getCookie('infra_admin'); $admin = $key === $realkey; if ($break === false) { Nostore::on(); View::setCookie('infra_admin'); $admin = false; } elseif ($break === true && !$admin) { Nostore::on(); //Если имя в конфиге указано, и переданные данные по HTTP соответствуют $admin = $_ADM_NAME && @$_SERVER['PHP_AUTH_USER'] == $_ADM_NAME && @$_SERVER['PHP_AUTH_PW'] == $_ADM_PASS; if ($admin) { View::setCookie('infra_admin', $realkey); } else { header('WWW-Authenticate: Basic realm="Protected Area"'); header('HTTP/1.0 401 Unauthorized'); echo json_encode($ans); exit; } } } return $admin; }