public function get(&$layer, $name = '', $def = null) { if (@is_null($layer['autosavename'])) { return $def; } $val = Session::get($layer['autosavename'] . '.' . $name); if (@is_null($val)) { return $def; } return $val; }
namespace infrajs\infra; use infrajs\access\Access; use infrajs\event\Event; use infrajs\ans\Ans; use infrajs\path\Path; use infrajs\session\Session; if (!is_file('vendor/autoload.php')) { chdir(explode('vendor/', __DIR__)[0]); require_once 'vendor/autoload.php'; } Access::admin(true); $ans = array(); if (isset($_GET['get'])) { $name = Ans::REQ('name'); $ans['id'] = Session::getId(); $ans['data'] = Session::get($name); } else { if (isset($_GET['clear'])) { Session::clear(); } else { if (isset($_GET['set'])) { $ans = array(); $name = Path::toutf($_REQUEST['name']); $val = Path::toutf($_REQUEST['val']); Session::set($name, $val); } } } return Ans::ret($ans);
if ($right) { $n['value'] = Sequence::set($n['value'], $right, $item['value']); //Новость осталась но она включает устанавливаемые данные } return $r; }); if ($r) { $del = new Fix('del'); return $del; } $r = null; return $r; }); } } if ($list) { if (!$session_id) { $pass = md5(print_r($list, true) . time() . rand()); $pass = substr($pass, 0, 8); $sql = 'insert into `ses_sessions`(`password`) VALUES(?)'; $stmt = $db->prepare($sql); $stmt->execute(array($pass)); $session_id = $db->lastInsertId(); View::setCookie('infra_session_id', $session_id); View::setCookie('infra_session_pass', md5($pass)); } Session::writeNews($list, $session_id); //$ans['news']=array_merge($news,$list); } return Ans::ret($ans); /**/
<?php use infrajs\ans\Ans; use infrajs\session\Session; use infrajs\router\Router; use infrajs\once\Once; use infrajs\access\Access; if (!is_file('vendor/autoload.php')) { chdir('../../../'); require_once 'vendor/autoload.php'; Router::init(); //Нужен чтобы работал конфиг .infra.json } Access::test(true); Session::get(); $ans = array(); return Ans::ret($ans);
<?php namespace infrajs\infra; use infrajs\access\Access; use infrajs\event\Event; use infrajs\ans\Ans; use infrajs\session\Session; if (!is_file('vendor/autoload.php')) { chdir('../../../../'); require_once 'vendor/autoload.php'; } Access::test(true); $data = array(); if (!empty($_GET['id'])) { $id = (int) $_GET['id']; } else { $id = Session::getId(); } $db = Db::pdo(); $stmt = Db::stmt('select count(*) from ses_sessions'); $stmt->execute(); $data['count'] = $stmt->fetchColumn(); $data['id'] = $id; $data['data'] = infra_session_user_get($id); $data['data'] = print_r($data['data'], true); $data['user'] = Session::getUser($id); $data['user'] = print_r($data['user'], true); echo Template::parse('-session/admin.tpl', $data);
public static function writeNews($list, $session_id) { if (!$list) { return; } $db =& Db::pdo(); global $infra_session_lasttime; $isphp = !!$infra_session_lasttime; $sql = 'insert into `ses_records`(`session_id`, `name`, `value`, `time`) VALUES(?,?,?,FROM_UNIXTIME(?))'; $stmt = $db->prepare($sql); $sql = 'delete from `ses_records` where `session_id`=? and `name`=? and `time`<=FROM_UNIXTIME(?)'; $delstmt = $db->prepare($sql); Each::exec($list, function &($rec) use($isphp, &$delstmt, &$stmt, $session_id) { $r = null; if (!$isphp && $rec['name'][0] == 'safe') { return $r; } $name = Sequence::short($rec['name']); $delstmt->execute(array($session_id, $name, $rec['time'])); $stmt->execute(array($session_id, $name, Load::json_encode($rec['value']), $rec['time'])); if (!$isphp && !$name) { //Сохранится safe Session::clear(); } return $r; }); }
<?php namespace infrajs\crumb; use infrajs\controller\Controller; use infrajs\each\Each; use infrajs\controller\Run; use infrajs\controller\Layer; use infrajs\path\Path; use infrajs\event\Event; use infrajs\sequence\Sequence; use infrajs\template\Template; use infrajs\session\Session; use infrajs\controller\External; Path::reqif('-controller/infra.php'); $cl = function ($name, $def = null) { return Session::get($name, $def); }; Sequence::set(Template::$scope, Sequence::right('infra.session.get'), $cl); $cl = function () { return Session::getLink(); }; Sequence::set(Template::$scope, Sequence::right('infra.session.getLink'), $cl); $cl = function () { return Session::getTime(); }; Sequence::set(Template::$scope, Sequence::right('infra.session.getTime'), $cl); $cl = function () { return Session::getId(); }; Sequence::set(Template::$scope, Sequence::right('infra.session.getId'), $cl);