, , ,
, function string_sanitise($text) { $ntext = preg_replace (array('/"\']*)["\']?>([^<]*)<\/a>/i'), array('[[$1][$2]]'), $text); $ntext = htmlspecialchars($ntext, ENT_QUOTES); $ntext = preg_replace(array('/<(\/?(p|br|b|em))>/i', '/\[\[([^\]]+)\]\[([^\]]+)\]\]/'), array('<$1>','$2'), $ntext); return $ntext; } function basepath() { global $cfg; $pos = strpos(strtolower($cfg['home']), strtolower($_SERVER['SERVER_NAME'])); $base = substr($cfg['home'], $pos+strlen($_SERVER['SERVER_NAME'])); $pos = strpos($_SERVER['REQUEST_URI'], "?"); if ($pos === false) $uri = $_SERVER['REQUEST_URI']; else $uri = substr($_SERVER['REQUEST_URI'], 0, $pos); if (strpos($uri, $base) === 0) { $cfg['path'] = substr($uri, strlen($base)); $pos = strrpos($cfg['path'], '/'); if ($pos !== false) { $cfg['dir'] = substr($cfg['path'], 0, $pos); } return str_repeat("../", substr_count($cfg['path'], "/")); } } function logged_in() { return isset($_SESSION['uid']); } function javascript_ok() { if (!logged_in()) return true; if ($_SESSION['javascript'] == true) return true; return false; } function is_spider() { if (isset($_SESSION['uid'])) if (isset($_SESSION['robot'])) return $_SESSION['robot']; $known_spiders = array('Yahoo! Slurp', 'Googlebot', 'Mediapartners-Google', 'VoilaBot', 'Gigabot/3.0', 'Speedy Spider', 'LinkWalker/2.0', 'proximic', 'Yeti/1.0', 'Eurobot/1.0', 'MnoGoSearch/', 'ia_archiver', 'Seekbot/1.0', 'MyEngines-Bot', 'larbin_', 'findlinks/1', 'holmes/3.12', 'NoteworthyBot/0.1', 'Eurosoft-Bot', 'Eurobot/1', 'Yandex', 'msnbot', 'Twiceler-0.9', 'ScoutJet', 'penthesilea/0.3', 'VisBot/2.0', 'Netluchs/Nutch-1.0', 'Yanga WorldSearch Bot', 'Semager', 'DotBot', 'Baiduspider', 'MJ12bot/', 'Yahoo-MMCrawler', 'Charlotte/1.1', 'Gaisbot/3.0', 'psbot/0.1', 'Ask Jeeves/Teoma', 'SapphireWebCrawler/Nutch', 'kalooga/KaloogaBot', 'SimilarPages/Nutch-1.0-dev', 'Cogentbot/1.', 'CatchBot/1.0', 'GingerCrawler/1.0', 'yacybot', 'www.yacy.net', 'Nutch-1.0', 'Tagoobot/3.0', 'SapphireWebCrawler/1.0', 'BotOnParade', 'SurveyBot/2.3', 'XmarksFetch/1.0', 'spbot/', 'TinEye/1.1', 'TurnitinBot/2.1', 'CligooRobot/1.0', 'libwww-perl', 'Wget', 'Python-urllib', 'CamontSpider/1.0', 'TwengaBot-Discover', 'Hailoobot/1.2', 'bingbot/2.0', 'Exabot/3.0', 'spbot/2.1', 'Search17Bot/1', 'Linguee Bot', 'findlinks/2', 'SiteBot/0.1', 'Purebot/1.1', 'Ezooms/1.0', 'discobot/1.1', 'AhrefsBot/1.0', 'suggybot v0.01a', 'DomainCrawler/2.0', 'Plukkie/1', '/Nutch-', 'aiHitBot/1.0', 'AhrefsBot/', 'Crawler', 'Acoon', 'aiHitBot', 'SeznamBot', 'CareerBot/1', 'SiteExplorer/1', 'discoverybot/2.0', 'SemrushBot/', 'archive.org_bot', 'waybackarchive.org/1.0', 'spbot/4.0', 'Mail.RU_Bot/2.0', 'linkdexbot/2.0', 'webmeup-crawler.com', 'meanpathbot/', 'SearchmetricsBot', 'publiclibraryarchive.org/', 'memoryBot/1', 'Lipperhey SEO Service', 'Sitedomain-Bot', 'seoscanners.net/', 'Qwantify/', 'WBSearchBot/', 'Seobility', 'MetaJobBot', 'BellPagesCA/1.0', 'SafeDNSBot', 'Uptimebot/1.0', 'DomainStatsBot/1.0', 'MetaJobBot', 'SEOkicks-Robot', 'Cliqzbot', 'bingbot/3', 'SEOkicks-Robot', 'MojeekBot/', 'oBot/', 'CCBot/', 'TurnitinBot', 'ips-agent', 'ExtLinksBot/', 'Barkrowler/', 'adscanner/', 'Cityreview Robot'); foreach ($known_spiders as $spider_id) { if (strpos($_SERVER['HTTP_USER_AGENT'], $spider_id) !== false) { if (isset($_SESSION['uid'])) $_SESSION['robot'] = true; return true; } } if (isset($_SESSION['uid'])) $_SESSION['robot'] = false; return false; } function is_admin() { if (is_null($_SESSION)) return false; if (!array_key_exists('nickname', $_SESSION)) return false; error_log( $_SESSION['nickname'] === 'Joey'); return $_SESSION['nickname'] === 'Joey'; } function format_info_bookmarks() { global $cfg; if (!isset($_SESSION['uid'])) return false; $query = sprintf("SELECT zeitung,name FROM bookmarks " . "JOIN zeitungen ON zeitungen.id = zeitung " . "WHERE uid = %d " . "ORDER BY priority,name LIMIT 20", $_SESSION['uid']); $sth = db_query($query); if ($sth === false || pg_num_rows ($sth) == 0) return false; $ret = '

'; return $ret; }