public static function stack($name, $value = null, $keep = false)
 {
     if (!is_null($value)) {
         self::$stack[$name] = $value;
         if ($keep) {
             self::flash($name, $value, 'stack', false);
             if (!isset($_SESSION["flash"])) {
                 $_SESSION["flash"] = array();
             }
             $_SESSION["flash"][$name] = $value;
         }
     } elseif (is_null($value) && isset(self::$stack[$name])) {
         return self::$stack[$name];
     } elseif (is_null($value) && ($value = \runner::flash($name, null, 'stack', false))) {
         return $value;
     } elseif (is_null($value) && isset($_SESSION["flash"][$name])) {
         return $_SESSION["flash"][$name];
     } else {
         return false;
     }
 }
 private static function set($user = null, $logout = false)
 {
     if (is_null($user)) {
         // logout user
         self::$me = false;
         self::$email = null;
         self::$name = null;
         self::$group = null;
         self::$scope = null;
         self::$auth = null;
         self::$custom = array();
         self::$alias = 0;
         self::close_token(self::$token);
         if ($logout) {
             $flash_var = \runner::config('User.UserFlashVar') ? \runner::config('User.UserFlashVar') : 'UserFlashVar';
             if (isset($_SESSION['routerunner-logout-' . $flash_var]) && $_SESSION['routerunner-logout-' . $flash_var] === true) {
                 $cookie = \runner::config('User.TokenCookie') ? \runner::config('User.TokenCookie') : 'TokenCookie';
                 \Routerunner\Routerunner::$slim->setCookie($cookie, null, -1, '/');
                 $flash_var = \runner::config('User.UserFlashVar') ? \runner::config('User.UserFlashVar') : 'UserFlashVar';
                 \runner::now($flash_var, false);
                 \runner::stack($flash_var, false);
                 \runner::flash($flash_var, false);
                 unset($_SESSION['slim.flash'][$flash_var]);
                 setcookie($cookie, null, -1, '/');
                 unset($_COOKIE[$cookie]);
                 unset($_SESSION['routerunner-logout-' . $flash_var]);
             } else {
                 $_SESSION['routerunner-logout-' . $flash_var] = true;
             }
         }
     } elseif (isset($user) && !is_null($user) && is_array($user)) {
         self::set();
         // clear user if exists
         $flash_var = \runner::config('User.UserFlashVar') ? \runner::config('User.UserFlashVar') : 'UserFlashVar';
         if (\runner::now($flash_var)) {
             $flash = \runner::now($flash_var);
         } elseif (\runner::stack($flash_var)) {
             $flash = \runner::stack($flash_var);
         } else {
             $flash = \runner::flash($flash_var);
         }
         $array_to_translate = \runner::config('User.UserArrayToTranslate') ? \runner::config('User.UserArrayToTranslate') : array();
         if ($flash === $user) {
             foreach ($user as $key => $value) {
                 $var = isset($array_to_translate[$key]) ? $array_to_translate[$key] : $key;
                 if ($var === 'email' || $var === 'name' || $var === 'alias') {
                     self::${$var} = $value;
                 } else {
                     self::$custom[$var] = $value;
                 }
             }
             if (self::get_user()) {
                 self::open_token();
                 self::set_session_token();
             }
         }
     }
 }
<?php

/**
 * Created by PhpStorm.
 * User: csibi
 * Date: 2015.02.18.
 * Time: 14:55
 */
$post = $_POST;
$msg = "";
if (!logincrypt($post["email"], $post["password"], $msg)) {
    echo '<div class="alert alert-danger">' . $msg . '</div>';
} else {
    echo '<div class="alert alert-success">Logged in successfully!</div>';
    $SQL = "SELECT id, email, last_login, last_ip, licence FROM member WHERE email = :email";
    if ($result = \Routerunner\Db::query($SQL, array(":email" => $post["email"]))) {
        $user = $result[0];
        if (isset($post["rememberme"]) && $post["rememberme"]) {
            $user["rememberme"] = true;
        }
        \runner::flash('member', $user);
        $SQL = "UPDATE member SET last_login = :last_login, last_ip = :last_ip WHERE email = :email";
        $params = array(":last_login" => time(), ":last_ip" => $_SERVER["REMOTE_ADDR"], ":email" => $post["email"]);
        \Routerunner\Db::query($SQL, $params);
        \runner::redirect($_SERVER["HTTP_REFERER"]);
    }
}