Beispiel #1
0
    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) {
Beispiel #2
0
<?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);
Beispiel #3
0
 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;
 }
Beispiel #4
0
 /**
  * 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;
 }