, , ,
,
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/',
'PetalBot;',
'SEOkicks;',
'SemrushBot-BA;',
'Dataprovider.com',
'GPTBot/',
'Applebot/',
'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 = '