open ( 'p:'. $conf['db']['host'] ,$conf['db']['user'] ,base64_decode ($conf['db']['pass']) ,$conf['db']['schema'] ); // Setting the version $_SESSION['version'] = Web::$sysConn->getValue ('SELECT version FROM version'); // Registering the visit if (!isset ($_COOKIE['PHPSESSID']) || isset ($_SESSION['access']) || isset ($_SESSION['skipVisit'])) return; $agent = $_SERVER['HTTP_USER_AGENT']; $browser = get_browser ($agent, TRUE); if (isset ($browser['crawler']) && $browser['crawler']) { $_SESSION['skipVisit'] = TRUE; return; } if (isset ($_SERVER['REMOTE_ADDR'])) $ip = ip2long ($_SERVER['REMOTE_ADDR']); $row = self::$sysConn->getRow ( 'CALL visit_register (#, #, #, #, #, #, #, #, #)', [ nullIf ($_COOKIE, 'hedera_visit') ,nullIf ($browser, 'platform') ,nullIf ($browser, 'browser') ,nullIf ($browser, 'version') ,nullIf ($browser, 'javascript') ,nullIf ($browser, 'cookies') ,isset ($agent) ? $agent : NULL ,isset ($ip) && $ip ? $ip : NULL ,nullIf ($_SERVER, 'HTTP_REFERER') ] ); if (isset ($row['access'])) { setcookie ('hedera_visit', $row['visit'], time () + 31536000); // 1 Year $_SESSION['access'] = $row['access']; } else $_SESSION['skipVisit'] = TRUE; } static function deinit () { self::$sysConn->query ( 'UPDATE user_session SET connection_id = NULL WHERE ssid = #' ,[session_id ()] ); } static function login () { global $conf; $wasLoged = Auth::isLogged (); $useCookies = TRUE; $success = TRUE; if (isset ($_GET['guest'])) { $row = self::$sysConn->getRow ( 'SELECT guest_user, guest_pass FROM config'); if ($row) { $_POST['user'] = $row['guest_user']; $_POST['password'] = base64_decode ($row['guest_pass']); $useCookies = FALSE; } } try { Auth::getCredentials (); self::$conn = new Conn (); self::$conn->open ( $conf['db']['host'] ,Auth::getUser () ,Auth::getPassword () ,$conf['db']['schema'] ); Auth::login ($useCookies); } catch (\Exception $e) { $success = FALSE; } // Registering the user access if (isset ($_SESSION['access'])) { $row = NULL; if ($success) { if (!$wasLoged) unset ($_SESSION['visitUser']); $row = self::$conn->getRow ( 'SELECT account.user_get_id () user, CONNECTION_ID() conn'); } $_SESSION['visitUser'] = self::$sysConn->getValue ( 'CALL visit_user (#, #, #, #, #)', [ $_SESSION['access'] ,nullIf ($_SESSION, 'visitUser') ,nullIf ($row, 'user') ,nullIf ($row, 'conn') ,session_id () ] ); if (!isset ($_SESSION['visitUnknown']) && !$success) $_SESSION['visitUnknown'] = $_SESSION['visitUser']; } return $success; } static function logout () { self::$sysConn->query ( 'DELETE FROM user_session WHERE ssid = #' ,[session_id ()] ); $_SESSION['visitUser'] = nullIf ($_SESSION, 'visitUnknown'); Auth::logout (); if (self::$conn) { self::$conn->close (); self::$conn = NULL; } } } ?>