public static function refreshContent($url, $expires_in = 300)
 {
     $str = self::getURL($url);
     $data = self::decodeStrData($str);
     if ($data === false) {
         return false;
     }
     $db = Database::getDatabase();
     $db->query("REPLACE INTO url_cache (url, dt_refreshed, dt_expires, data) VALUES (:url, :dt_refreshed, :dt_expires, :data)", array('url' => $url, 'dt_refreshed' => dater_utc(), 'dt_expires' => dater_utc(time() + $expires_in), 'data' => $str));
     return $str;
 }
 public static function track($page_title = '')
 {
     $db = Database::getDatabase();
     $dt = dater_utc();
     $referer = getenv('HTTP_REFERER');
     $referer_is_local = self::refererIsLocal($referer);
     $url = full_url();
     $search_terms = self::searchTerms();
     $img_search = '';
     $ip = self::getIP();
     $info = self::browserInfo();
     $browser_family = $info['browser'];
     $browser_version = $info['version'];
     $os = $info['platform'];
     $os_version = '';
     $user_agent = $info['useragent'];
     $exec_time = defined('START_TIME') ? microtime(true) - START_TIME : 0;
     $num_queries = $db->numQueries();
     $sql = "INSERT INTO stats (dt, referer, referer_is_local, url, page_title, search_terms, img_search, browser_family, browser_version, os, os_version, ip, user_agent, exec_time, num_queries)\n                    VALUES (:dt, :referer, :referer_is_local, :url, :page_title, :search_terms, :img_search, :browser_family, :browser_version, :os, :os_version, :ip, :user_agent, :exec_time, :num_queries)";
     $vals = array('dt' => $dt, 'referer_is_local' => $referer_is_local, 'referer' => $referer, 'url' => $url, 'page_title' => $page_title, 'search_terms' => $search_terms, 'img_search' => $img_search, 'ip' => $ip, 'browser_family' => $browser_family, 'browser_version' => $browser_version, 'os_version' => $os_version, 'os' => $os, 'user_agent' => $user_agent, 'exec_time' => $exec_time, 'num_queries' => $num_queries);
     $db->query($sql, $vals);
 }
 public function adult($val, $id)
 {
     if (dater_utc($val) > date('Y') - 18 . date('-m-d H:i:s')) {
         $this->add($id, 'You must be at least 18 years old.');
         return false;
     }
     return true;
 }