Verification: a143cc29221c9be0

Php cache data in session

Php cache data in session

Двигатели

Cache

Пространство имен: \

Расположение файла:lib/session.php

Класс Session предоставляет легкий обработчик сеанса на основе Cache .

Убедитесь, что вы включили кэш, чтобы это работало. Пример:

// just create an object
new Session();
 
$f3->set('SESSION.test',123);
echo $f3->get('SESSION.test');

Конструктор принимает несколько необязательных аргументов:

new Session( [ callable $onsuspect [, string $key [, Cache $cache ]]] )
 

$onsuspect необходим для отмены обработки по умолчанию подозрительных сеансов : когда измененяется IP или агент во время сессии, она прекращается и выводится код ошибки 403.

Чтобы переопределить это поведение, вы можете передать конструктору свой собственный обработчик подозрительного сеанса:

new Session(function(Session $session,$id){
  // Session $id is suspect, do something
  // you can read $session->agent(), $session->ip(), $session->csrf() and $session->stamp()
  // and/or return FALSE to trigger the default 403 error
});

Аргумент $key необходим для зранения CSRF токена в hive переменной:

new Session(NULL,'CSRF');
echo $f3->CSRF; // token here

$cache позволяет хранить данные сессии в специальном каталоге кэша:

$cache=Cache::instance(); // Default cache (the one defined by the CACHE variable)
$sessionCache=new Cache('folder=var/sessions/'); // Session cache
new Session(NULL,NULL,$sessionCache);

SQL

Этот класс предоставляет обработчик сеанса на основе SQL.

Пространство имен: \DB\SQL

Расположение файла:lib/db/sql/session.php

Предположим, у вас есть объект SQL DB в ключе hive DB, используйте:

$db = $f3->get('DB');
// just create an object
new \DB\SQL\Session($db);
 
$f3->set('SESSION.test',123);
echo $f3->get('SESSION.test');

Он автоматически создаст нужную таблицу, если session таблица не существует. Имя таблицы можно контролировать с помощью 2-го параметра конструктора $table. Третий параметр $force используется для создания таблицы, если она не существует.

Mongo

Этот класс предоставляет обработчик сеанса на основе Mongo.

Пространство имен: \DB\Mongo

Расположение файла:lib/db/mongo/session.php

Предположим, у вас есть объект Mongo DB в ключе hive DB, используйте:

$db = $f3->get('DB');
// just create an object
new \DB\Mongo\Session($db);
 
$f3->set('SESSION.test',123);
echo $f3->get('SESSION.test');

Имя таблицы можно контролировать с помощью 2-го параметра конструктора $table.

Jig

Этот класс предоставляет обработчик сеанса на основе JIG.

Пространство имен: \DB\Jig

Расположение файла:lib/db/jig/session.php

Предположим, у вас есть объект Jig DB в ключе hive DB, используйте:

$db = $f3->get('DB');
// just create an object
new \DB\JIG\Session($db);
 
$f3->set('SESSION.test',123);
echo $f3->get('SESSION.test');

Имя таблицы можно контролировать с помощью 2-го параметра конструктора $table.

Методы

agent

Возврат HTTP user agent

string|FALSE agent( )
 

Возвращает user agent браузера, который использовался клиентом при создании текущего сеанса.

csrf

Вернуть токен анти-CSRF

string|FALSE csrf( )
 

Этот метод возвращает токен CSRF, привязанный к текущему активному сеансу и текущему запросу. Используйте этот токен для защиты вашего приложения от CSRF-атак. Конструктор классов сеанса уже выполняет некоторые проверки для предотвращения перехвата сеанса, но рекомендуется реализовать дополнительную проверку, чтобы защитить ваше приложение от атак с подменой URL и CSRF .

Вот как им пользоваться:

1)Сначала вызовите метод csrf(), чтобы получить токен текущего сеанса и сохраните его где-нибудь:

$sess=new DB\SQL\Session($db);
$f3->CSRF=$sess->csrf();

NB: в качестве альтернативы вы можете создать экземпляр класса Session с 5-м параметром, для которого задано имя ключа hive, который будет содержать токен CSRF. Например:

new DB\SQL\Session($db,'sessions',TRUE,NULL,'CSRF');// now $f3->CSRF holds the token

2)Сохраните этот токен в сеансе:

$f3->copy('CSRF','SESSION.csrf');// the variable name is up to you

3)Добавьте этот токен в свою форму:

input type="hidden" name="token" value="{{ @CSRF }}/>

4)При отправке формы сравните полученный токен со значением, хранящимся в сеансе:

$token = $f3->get('POST.token');
$csrf = $f3->get('SESSION.csrf');
if (empty($token) || empty($csrf) || $token!==$csrf) {
  // CSRF attack detected
}

Полный пример выглядит так:

$f3->DB=new DB\SQL('mysql:host=127.0.0.1;port=3306;dbname=test;','user','p4ssw0rd');
 
$f3->route('GET|POST /test-csrf',function($f3,$params){
 
    new DB\SQL\Session($f3->DB,'sessions',TRUE,NULL,'CSRF');
    // or:
    // $sess=new DB\SQL\Session($f3->DB);
    // $f3->CSRF=$sess->csrf();
 
    if ($f3->VERB=='POST') {
        $token = $f3->get('POST.token');
        $csrf = $f3->get('SESSION.csrf');
        if (empty($token) || empty($csrf) || $token!==$csrf) {
            echo 'CSRF attack!';
        else
            echo 'Your name is '.$f3->get('POST.name');
        die();
    }
 
    $f3->copy('CSRF','SESSION.csrf');
 
    echo '
'
. ''. ''. '';   });  

ip

Вернуть IP-адрес

string|FALSE ip( )
 

Возвращает IP-адрес, который использовался клиентом при создании текущего сеанса.

stamp

Вернуть временную метку Unix

string|FALSE stamp( )
 

Возвращает временную метку unix «последнее обновление в» текущего сеанса.

NISSAN JUKE авточехлы, NISSAN JUKE купить автомобильные чехлы в Красноярске

Авточехлы NISSAN JUKE - купить (заказать) на свой авто

Не нашли свой авто? Посмотрите дополнительный список автомобилей NIssan!

​​​​​​​​

Комплект стильных авточехлов, которые придадут салону Вашего авто уютный вид, легкая и быстрая установка. Можно подобрать варианты из таблицы. Чехлы сшиты по форме сидений и не требуют никакой подгонки (предусмотрены швы для срабатывания подушек безопасности).

Комплектация Цена
  • комплект чехлов на передние и задние сидения
  • 4 или 5 чехла для подголовников
  • инструкцию по установке чехлов
от 5 500 руб.
Сделать заказ

Авточехлы NISSAN JUKE - купить (заказать) на свой авто

Не нашли свой авто? Посмотрите дополнительный список автомобилей NIssan!

​​​​​​​​

Комплект стильных авточехлов, которые придадут салону Вашего авто уютный вид, легкая и быстрая установка. Можно подобрать варианты из таблицы. Чехлы сшиты по форме сидений и не требуют никакой подгонки (предусмотрены швы для срабатывания подушек безопасности).

Комплектация Цена
  • комплект чехлов на передние и задние сидения
  • 4 или 5 чехла для подголовников
  • инструкцию по установке чехлов
от 5 500 руб.
Сделать заказ

Варианты тканей - жаккард