Hab da nen Problem^^

tnd Hannes

Grünschnabel
folgende fehlermeldung

Parse error: syntax error, unexpected ';', expecting T_VARIABLE or '$' in /home/www/cwcity/hosting/p/u/pure-gaming/htdocs/dzcp1.5.4/inc/bbcode_news.php(2414) : eval()'d code on line 1

kommt aber die php scheint korrekt zu sein...

PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
## INCLUDES/REQUIRES ##
require_once(basePath.'/inc/secure.php');
require_once(basePath.'/inc/_version.php');
require_once(basePath.'/inc/sendmail.php');
require_once(basePath.'/inc/server_query/_functions.php');
require_once(basePath."/inc/teamspeak_query.php");
## FUNCTIONS ##
//-> Legt die UserID desRootadmins fest
//-> (dieser darf bestimmte Dinge, den normale Admins nicht duerfen, z.B. andere Admins editieren)
$rootAdmin = 1;
//-> Settingstabelle auslesen
$qry = db("SELECT * FROM ".$db['settings']."");
$settings = _fetch($qry);
$prev = $settings['prev'].'_';
//-> Language auslesen
$language = (file_exists(basePath.'/inc/lang/languages/'.$_COOKIE[$prev.'language'].'.php')) ? $_COOKIE[$prev.'language'] : $settings["language"];
//einzelne Definitionen
$isSpider = isSpider();
$subfolder = basename(dirname(dirname($_SERVER['PHP_SELF']).'../'));
$httphost = $_SERVER['HTTP_HOST'].(empty($subfolder) ? '' : '/'.$subfolder);
$domain = str_replace('www.','',$httphost);
$pagetitle = $settings["pagetitel"];
$clanname = $settings["clanname"];
$badwords = $settings["badwords"];
$mailfrom = $settings["mailfrom"];
$double_post = $settings["double_post"];
$forum_vote = $settings["forum_vote"];
$gb_activ = $settings["gb_activ"];
$gametiger_game = $settings["gametiger"];
$ts_ip = $settings["ts_ip"];
$ts_port = $settings["ts_port"];
$balken_cw = $settings["balken_cw"];
$balken_vote = $settings["balken_vote"];
$balken_vote_menu = $settings["balken_vote_menu"];
$i_domain = $settings["i_domain"];
$i_autor = $settings["i_autor"];
$counter_start = $settings["counter_start"];
$useronline = 300;
$reload = 3600 * 24;
$datum = time();
$today = date("j.n.Y");
$picformat = array("jpg", "gif", "png");
//-> Configtabelle auslesen
$qryc = db("SELECT * FROM ".$db['config']."");
$c = _fetch($qryc);
//-> Config
$maxadmincw = 10;
$maxfilesize = @ini_get('upload_max_filesize');
$teamRow = $c['teamrow'];
$allowHover = $c['allowhover'];
$secureLogin = $c['securelogin'];
$maxwidth = $c['maxwidth'];
$gallery = $c['gallery'];
$upicsize = $c['upicsize'];
$maxgallerypics = $c['m_gallerypics'];
$maxusergb = $c['m_usergb'];
$maxclankasse = $c['m_clankasse'];
$maxuserlist = $c['m_userlist'];
$maxbanned = $c['m_banned'];
$maxadminnews = $c['m_adminnews'];
$maxadminartikel = $c["m_adminartikel"];
$martikel = $c["m_artikel"];
$maxshout = $c['m_shout'];
$maxcomments = $c['m_comments'];
$maxcwcomments = $c['m_cwcomments'];
$maxarchivnews = $c['m_archivnews'];
$maxgb = $c['m_gb'];
$maxfthreads = $c['m_fthreads'];
$maxcw = $c['m_clanwars'];
$maxfposts = $c['m_fposts'];
$maxnews = $c['m_news'];
$maxftopics = $c['m_ftopics'];
$maxevent = $c['m_events'];
$maxlnews = $c['m_lnews'];
$maxlartikel = $c['m_lartikel'];
$maxtopdl = $c['m_topdl'];
$maxlwars = $c['m_lwars'];
$maxnwars = $c['m_nwars'];
$maxlreg = $c['m_lreg'];
$maxaway = $c['m_away'];
$maxshoutarchiv = $c['maxshoutarchiv'];
$shout_max_zeichen = $c['shout_max_zeichen'];
$maxpicwidth = 90;
$flood_forum = $c['f_forum'];
$flood_gb = $c['f_gb'];
$flood_membergb = $c['f_membergb'];
$flood_shout = $c['f_shout'];
$flood_newscom = $c['f_newscom'];
$flood_artikelcom = $c['f_artikelcom'];
$flood_cwcom = $c['f_cwcom'];
$lnewsadmin = $c['l_newsadmin'];
$lshouttext = $c['l_shouttext'];
$lshoutnick = $c['l_shoutnick'];
$lnews = $c['l_lnews'];
$lartikel = $c['l_lartikel'];
$ltopdl = $c['l_topdl'];
$lftopics = $c['l_ftopics'];
$llwars = $c['l_lwars'];
$llreg = $c['l_lreg'];
$servermenu = $c['l_servernavi'];
$lnwars = $c['l_nwars'];
$lnewsarchiv = $c['l_newsarchiv'];
$lcwgegner = $c['l_clanwars'];
$l_team = $c['l_team'];
$lforumtopic = $c['l_forumtopic'];
$lforumsubtopic = $c['l_forumsubtopic'];
$maxawards = $c['m_awards'];
$sdir = $settings['tmpdir'];
$userip = $_SERVER['REMOTE_ADDR'];
if(isset($_COOKIE[$prev.'id']) && isset($_COOKIE[$prev.'pwd']) && empty($_SESSION['id']))
{
  $_SESSION['id']   = intval($_COOKIE[$prev.'id']);
  $_SESSION['pwd']  = $_COOKIE[$prev.'pwd'];
  $_SESSION['ip']   = $_SERVER['REMOTE_ADDR'];

  if(data(intval($_COOKIE[$prev.'id']), "ip") != $_SESSION['ip'])
  {
    $qry = db("UPDATE ".$db['userstats']."
               SET `logins` = logins+1
               WHERE user = '".intval($_COOKIE[$prev.'id'])."'");

    $qry = db("UPDATE ".$db['users']."
      				 SET `online` = 1,
                   `sessid` = '".session_id()."',
                   `ip`     = '".$userip."'
		    		   WHERE id = ".intval($_COOKIE[$prev.'id']));
    $_SESSION['lastvisit'] = data(intval($_COOKIE[$prev.'id']), "time");
  }

  if(empty($_SESSION['lastvisit']))
    $_SESSION['lastvisit'] = data(intval($_COOKIE[$prev.'id']), "time");
}
$userid = userid();
$chkMe = checkme();
if($chkMe == "unlogged")
{
  $_SESSION['id']        = '';
  $_SESSION['pwd']       = '';
  $_SESSION['ip']        = '';
  $_SESSION['lastvisit'] = '';
}

//-> Auslesen der UserID
function userid()
{
  global $db;
    $qry = db("SELECT id FROM ".$db['users']."
               WHERE id = '".$_SESSION['id']."'
               AND pwd = '".$_SESSION['pwd']."'");
    $get = _fetch($qry);

  return $get['id'];
}
//-> Templateswitch
$files = get_files('../inc/_templates_/');
$folder = $files[0];
if($_COOKIE[$prev.'tmpdir'] != NULL)
{
  if(file_exists(basePath."/inc/_templates_/".$_COOKIE[$prev.'tmpdir'])) $tmpdir = $_COOKIE[$prev.'tmpdir'];
  else $tmpdir = $folder;
} else {
  if(file_exists(basePath."/inc/_templates_/".$sdir)) $tmpdir = $sdir;
  else $tmpdir = $folder;
}
$designpath = '../inc/_templates_/'.$tmpdir;
//-> Languagefiles einlesen
function lang($lng,$pfad='')
{
  global $charset;
  if(!file_exists(basePath."/inc/lang/languages/".$lng.".php"))
  {
    $files = get_files(basePath.'/inc/lang/languages/');
    $lng = str_replace('.php','',$files[0]);
  }
	
  include(basePath."/inc/lang/global.php");
  include(basePath."/inc/lang/languages/".$lng.".php");
}
//-> Sprachdateien auflisten
function languages()
{
  $files = get_files('../inc/lang/languages/');
  for($i=0;$i<=count($files)-1;$i++)
  {
    $file = str_replace('.php','',$files[$i]);
    $upFile = strtoupper(substr($file,0,1)).substr($file,1);

    if(file_exists('../inc/lang/flaggen/'.$file.'.gif'))
      $lang .= '<a href="../user/?action=language&amp;set='.$file.'"><img src="../inc/lang/flaggen/'.$file.'.gif" alt="'.$upFile.'" title="'.$upFile.'" class="icon" /></a> ';
  }

  return $lang;
}
//-> Userspezifiesche Dinge
if(isset($userid) && $ajaxJob != true)
{
  $upd = db("UPDATE ".$db['userstats']."
	  			   SET `hits`       = hits+1,
                 `lastvisit`  = '".((int)$_SESSION['lastvisit'])."'
						 WHERE user = ".$userid);

  $u_b1 = "<!--";
  $u_b2 = "-->";
}
//-> Settings auslesen (=> Adminmenu)
function settings($what)
{
  global $db;
    $qry = db("SELECT ".$what." FROM ".$db['settings']."");
    $get = _fetch($qry);

  return $get[$what];
}
//-> PHP-Code farbig anzeigen
function highlight_text($txt)
{
  while(preg_match("=\[php\](.*)\[/php\]=Uis",$txt)!=FALSE)
  {
    $res = preg_match("=\[php\](.*)\[/php\]=Uis",$txt,$matches);

    $src = $matches[1];
    $src = str_replace('<?php','',$src);
    $src = str_replace('<?php','',$src);
    $src = str_replace('?>','',$src);
    $src = str_replace("'", "'", $src);
    $src = str_replace(""", "\"", $src);
    $src = str_replace("&amp;","&",$src);
    $src = str_replace("&lt;","<",$src);
    $src = str_replace("&gt;",">",$src);
    $src = str_replace('<?php','<?',$src);
    $src = str_replace('?>','?>',$src);
    $src = str_replace("&quot;","\"",$src);
    $src = str_replace("&nbsp;"," ",$src);
    $src = str_replace("&nbsp;"," ",$src);
    $src = str_replace("<p>","\n",$src);
    $src = str_replace("</p>","",$src);
    $l = explode("<br />", $src);
    $src = preg_replace("#\<br(.*?)\>#is","\n",$src);

    $src = '<?php'.$src.' ?>';

    $colors = array(
      '#111111' => 'string', '#222222' => 'comment', '#333333' => 'keyword',
      '#444444' => 'bg',     '#555555' => 'default', '#666666' => 'html'
    );

    foreach ($colors as $color => $key)
      ini_set('highlight.'.$key, $color);
// Farben ersetzen & highlighten
     $src = preg_replace(
      '!style="color: (#\d{6})"!e',
      '"class=\"".$prefix.$colors["\1"]."\""',
      highlight_string($src, TRUE)
    );

// PHP-Tags komplett entfernen
    $src = str_replace('&lt;?php','',$src);
    $src = str_replace('?&gt;','',$src);
    $src = str_replace('&amp;</span><span class="comment">#60;?','&lt;?',$src);
    $src = str_replace('?&amp;</span><span class="comment">#62;','?&gt;',$src);
    $src = str_replace('&amp;#60;?','&lt;?',$src);
    $src = str_replace('?&amp;#62;','?&gt;',$src);
    $src = str_replace(":", ":", $src);
    $src = str_replace("(", "(", $src);
    $src = str_replace(")", ")", $src);
    $src = str_replace("^", "^", $src);
// Zeilen zaehlen
    for($i=1;$i<=count($l)+1;$i++)
      $lines .= $i.".<br />";
// Ausgabe
    $code = '<div class="codeHead">&nbsp;&nbsp;&nbsp;Code:</div><div class="code"><table style="width:100%;padding:0px" cellspacing="0"><tr><td class="codeLines">'.$lines.'</td><td class="codeContent">'.$src.'</td></table></div>';

    $txt = preg_replace("=\[php\](.*)\[/php\]=Uis",$code,$txt,1);
  }
  return $txt;
}
//-> Glossarfunktion
$gl_words = array();
$gl_desc = array();
$qryglossar = db("SELECT * FROM ".$db['glossar']);
while($getglossar = _fetch($qryglossar))
{
  $gl_words[] = re($getglossar['word']);
  $gl_desc[]  = $getglossar['glossar'];
}

function regexChars($txt)
{
  $txt = strip_tags($txt);
  $txt = str_replace('"','&quot;',$txt);
  $txt = str_replace('\\','\\\\',$txt);
  $txt = str_replace('<','\<',$txt);
  $txt = str_replace('>','\>',$txt);
  $txt = str_replace('/','\/',$txt);
  $txt = str_replace('.','\.',$txt);
  $txt = str_replace(':','\:',$txt);
  $txt = str_replace('^','\^',$txt);
  $txt = str_replace('$','\$',$txt);
  $txt = str_replace('|','\|',$txt);
  $txt = str_replace('?','\?',$txt);
  $txt = str_replace('*','\*',$txt);
  $txt = str_replace('+','\+',$txt);
  $txt = str_replace('-','\-',$txt);
  $txt = str_replace('(','\(',$txt);
  $txt = str_replace(')','\)',$txt);
  $txt = str_replace('[','\[',$txt);
  $txt = str_replace(']','\]',$txt);
  $txt = str_replace('}','\}',$txt);
  $txt = str_replace('{','\{',$txt);
  $txt = str_replace("\r",'',$txt);
  $txt = str_replace("\n",'',$txt);

  return $txt;
}

function glossar($txt)
{
  global $db,$gl_words,$gl_desc;

  $txt = str_replace(']',']',$txt);
  $txt = str_replace('[','[',$txt);

// mark words
  for($s=0;$s<=count($gl_words)-1;$s++)
  {
    $w = addslashes(regexChars(html_entity_decode($gl_words[$s])));
    $txt = str_ireplace(' '.$w, ' <tmp|'.$w.'|tmp> ', $txt);
  }

// replace words
  for($g=0;$g<=count($gl_words)-1;$g++)
  {
    $desc = regexChars(html_entity_decode($gl_desc[$g]));
    $info = 'onmouseover="DZCP.showInfo(\'<tr><td colspan=2 padding=3>'.jsconvert($desc).'</td></tr>\')" onmouseout="DZCP.hideInfo()"';

    $w = regexChars(html_entity_decode($gl_words[$g]));
    $r = "<a class=\"glossar\" href=\"../glossar/?word=".$gl_words[$g]."\" ".$info.">".$gl_words[$g]."</a>";

    $txt = str_ireplace('<tmp|'.$w.'|tmp>', $r, $txt);
  }

  $txt = str_replace(']',']',$txt);
  $txt = str_replace('[','[',$txt);

  return $txt;
}
//-> Replaces
function replace($txt,$type=0)
{
  $txt = str_replace(""","\"",$txt);

  if($type == 1)
    $txt = preg_replace("#<img src=\"(.*?)\" mce_src=\"(.*?)\"(.*?)\>#i","<img src=\"$2\" alt=\"\">",$txt);

  $var = array("/\[url\](.*?)\[\/url\]/",
               "/\[img\](.*?)\[\/img\]/",
               "/\[url\=(http\:\/\/)?(.*?)\](.*?)\[\/url\]/");

	$repl = array("<a href=\"$1\" target=\"_blank\">$1</a>",
                "<img src=\"$1\" class=\"resizeImage\" alt=\"\" />",
                "<a href=\"http://$2\" target=\"_blank\">$3</a>");

	$txt = preg_replace($var,$repl,$txt);

  $txt = preg_replace_callback("#\<img(.*?)\>#",
                create_function(
                                 '$img',
                                 'if(preg_match("#class#i",$img[1]))
                                    return "<img".$img[1].">";
                                  else return "<img class=\"content\"".$img[1].">";
                                '
                               ),
                               $txt);

  $txt = preg_replace_callback("#\[youtube\]http\:\/\/www.youtube.com\/watch\?v\=(.*)\[\/youtube\]#Uis", #
                create_function(
                                 '$yt',
                                 '
                                  $width = 425; $height = 344;
                                  return "<object width=\"".$width."\" height=\"".$height."\"><param name=\"movie\" value=\"http://www.youtube.com/v/".trim($yt[1])."&amp;hl=de&amp;fs=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/".trim($yt[1])."&amp;hl=de&amp;fs=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"".$width."\" height=\"".$height."\"></embed></object>";
                                '
                               ), $txt);
                               
  $txt = str_replace("\"",""",$txt);
  $txt = preg_replace("#(\w){1,1}(&nbsp;)#Uis","$1 ",$txt);

  return $txt;
}
//-> Badword Filter
function BadwordFilter($txt)
{
  global $badwords;
    $words = explode(",",trim($badwords));
    foreach($words as $word)
    {
      $txt = preg_replace("#".$word."#i", str_repeat("*", strlen($word)), $txt);
    }
    
  return $txt;
}
//-> Funktion um Bestimmte Textstellen zu markieren
function hl($text, $word)
{
  if($_SESSION['search_type'] == 'text')
  {
    if($_SESSION['search_con'] == 'or')
    {
      $words = explode(" ",$word);
      for($x=0;$x<count($words);$x++)
        $ret['text'] = preg_replace("#".$words[$x]."#i",'<span class="fontRed" title="'.$words[$x].'">'.$words[$x].'</span>',$text);
    } else $ret['text'] = preg_replace("#".$word."#i",'<span class="fontRed" title="'.$word.'">'.$word.'</span>',$text);

    if(!preg_match("#<span class=\"fontRed\" title=\"(.*?)\">#", $ret['text'])) $ret['class'] = 'class="commentsRight"';
    else $ret['class'] = 'class="highlightSearchTarget"';
  } else {
    $ret['text'] = $text;
    $ret['class'] = 'class="commentsRight"';
  }

  return $ret;
}
//-> Emailadressen in Unicode umwandeln
function eMailAddr($email)
{
  $address = trim($email);
  $output = "";

  for($i=0;$i<strlen($email);$i++)
  {
    $r.=str_replace(substr($email,$i,1),"&#".ord(substr($email,$i,1)).";",substr($email,$i,1));
  }

  return $r;
}
//-> Leerzeichen mit + ersetzen (w3c)
function convSpace($string)
{
    $string = str_replace(" ","+",$string);

  return $string;
}
//-> BBCode
function re_bbcode($txt)
{
	$txt = str_replace("'", "'", $txt);
  $txt = str_replace("[","[",$txt);
  $txt = str_replace("]","]",$txt);
  $txt = str_replace("&lt;","<",$txt);
  $txt = str_replace("&gt;",">",$txt);
//  $txt = str_replace('<p></p>', '<p>&nbsp;</p>', $txt);
  $txt = stripslashes($txt);

	return $txt;
}
//Diverse BB-Codefunktionen
function bbcode($txt, $tinymce=0)
{
  $txt = BadwordFilter($txt);
  $txt = replace($txt,$tinymce);
  $txt = highlight_text($txt);
  $txt = re_bbcode($txt);
  $txt = strip_tags($txt,"<br><object><em><param><embed><strong><iframe><hr><table><tr><td><div><span><a><b><font><i><u><p><ul><ol><li><br /><img>");
  $txt = smileys($txt);
  $txt = glossar($txt);
  $txt = str_replace(""","\"",$txt);
  $txt = str_replace('<p></p>', '<p>&nbsp;</p>', $txt);

  return $txt;
}
function bbcode_nletter($txt)
{
  $txt = stripslashes($txt);
  $txt = nl2br(trim($txt));
  $txt = '<style type="text/css">p { margin: 0px; padding: 0px; }</style>'.$txt;

  return $txt;
}
function bbcode_nletter_plain($txt)
{
  $txt = preg_replace("#\<\/p\>#Uis","\r\n",$txt);
  $txt = preg_replace("#\<br(.*?)\>#Uis","\r\n",$txt);
  $txt = str_replace("p { margin: 0px; padding: 0px; }","",$txt);
  $txt = convert_feed($txt);
  $txt = str_replace("&amp;#91;","[",$txt);
  $txt = str_replace("&amp;#93;","]",$txt);
  $txt = strip_tags($txt);
  return $txt;
}
function bbcode_html($txt,$tinymce=0)
{
  $txt = str_replace("&lt;","<",$txt);
  $txt = str_replace("&gt;",">",$txt);
  $txt = str_replace("&quot;","\"",$txt);
  $txt = BadwordFilter($txt);
  $txt = replace($txt,$tinymce);
  $txt = highlight_text($txt);
  $txt = re_bbcode($txt);
  $txt = smileys($txt);
  $txt = glossar($txt);
  $txt = str_replace(""","\"",$txt);

	return $txt;
}
//-> Textteil in Zitat-Tags setzen
function zitat($nick,$zitat)
{
	$zitat = str_replace(chr(145), chr(39), $zitat);
	$zitat = str_replace(chr(146), chr(39), $zitat);
	$zitat = str_replace("'", "'", $zitat);
	$zitat = str_replace(chr(147), chr(34), $zitat);
	$zitat = str_replace(chr(148), chr(34), $zitat);
	$zitat = str_replace(chr(10), " ", $zitat);
	$zitat = str_replace(chr(13), " ", $zitat);
  $zitat = preg_replace("#[\n\r]+#", "<br />", $zitat);
  $zitat = '<div class="quote"><b>'.$nick.' '._wrote.':</b><br />'.re_bbcode($zitat).'</div><br /><br /><br />';

  return $zitat;
}
//-> convert string for output
function re($txt)
{
  $txt = stripslashes($txt);
  $txt = str_replace("& ","&amp; ",$txt);
  $txt = str_replace("[","[",$txt);
  $txt = str_replace("]","]",$txt);
  $txt = str_replace("\"",""",$txt);
  $txt = str_replace("<","<",$txt);
  $txt = str_replace(">",">",$txt);
  $txt = str_replace("(", "(", $txt);
  $txt = str_replace(")", ")", $txt);

  return $txt;
}
function re_entry($txt)
{
  $txt = stripslashes($txt);
  return $txt;
}
//-> Smileys ausgeben
function smileys($txt)
{
  $files = get_files('../inc/images/smileys');
  for($i=0; $i<count($files); $i++)
  {
    $smileys = $files[$i];
    $bbc = preg_replace("=.gif=Uis","",$smileys);

    if(preg_match("=:".$bbc.":=Uis",$txt)!=FALSE)
    {
      $txt = preg_replace("=:".$bbc.":=Uis","<img src=\"../inc/images/smileys/".$bbc.".gif\" alt=\"\" />", $txt);
    }
  }

	$var = array("/\ :D/",
               "/\ :P/",
               "/\ ;\)/",
               "/\ :\)/",
               "/\ :-\)/",
               "/\ :\(/",
               "/\ :-\(/",
               "/\ ;-\)/");

  $repl = array(" <img src=\"../inc/images/smileys/grin.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/zunge.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/zwinker.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/smile.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/smile.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/traurig.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/traurig.gif\" alt=\"\" />",
                " <img src=\"../inc/images/smileys/zwinker.gif\" alt=\"\" />");

  $txt = preg_replace($var,$repl, $txt);
  $txt = str_replace(" ^^"," <img src=\"../inc/images/smileys/^^.gif\" alt=\"\" />", $txt);

  return $txt;
}
//-> Flaggen ausgeben
function flagge($txt)
{
	$var = array("/\:de:/",
               "/\:ch:/",
               "/\:at:/",
               "/\:au:/",
               "/\:be:/",
               "/\:br:/",
               "/\:ca:/",
               "/\:gb:/",
               "/\:pl:/",
               "/\:cz:/",
               "/\:dk:/",
               "/\:es:/",
               "/\:en:/",
               "/\:fi:/",
               "/\:fr:/",
               "/\:gr:/",
               "/\:hr:/",
               "/\:us:/",
               "/\:it:/",
               "/\:se:/",
               "/\:eu:/",
               "/\:nl:/",
               "/\:na:/",
               "/\:no:/",
               "/\:ru:/");

  $repl = array("<img src=\"../inc/images/flaggen/de.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/ch.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/at.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/au.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/be.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/br.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/ca.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/uk.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/pl.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/cz.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/dk.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/es.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/fo.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/fi.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/fr.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/gr.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/hr.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/us.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/it.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/se.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/eu.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/nl.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/nocountry.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/no.gif\" alt=\"\" />",
                "<img src=\"../inc/images/flaggen/ru.gif\" alt=\"\" />" );

  $txt = preg_replace($var,$repl, $txt);
  return $txt;
}
//-> Funktion um Ausgaben zu kuerzen
function cut($str, $length = null, $dots = true)
{
  if($length === 0) return '';
  $dots = ($dots == true && strlen(html_entity_decode($str)) > $length) ? '...' : '';

  if(strpos($str, '&') === false)
    return (($length === null) ? substr($str, $start) : substr($str, $start, $length)).$dots;

  $chars = preg_split('/(&[^;\s]+;)|/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
  $html_length = count($chars);

  if(($html_length === 0) || ($start >= $html_length) || (isset($length) && ($length <= -$html_length)))
    return '';

  if($start >= 0) $real_start = $chars[$start][1];
  else {
    $start = max($start,-$html_length);
    $real_start = $chars[$html_length+$start][1];
  }

  if (!isset($length)) return substr($str, $real_start).$dots;
  else if($length > 0) return (($start+$length >= $html_length) ? substr($str, $real_start) : substr($str, $real_start, $chars[max($start,0)+$length][1] - $real_start)).$dots;
                  else return substr($str, $real_start, $chars[$html_length+$length][1] - $real_start).$dots;
}

function wrap($str, $width = 75, $break = "\n", $cut = true)
{
  return strtr(str_replace(htmlentities($break), $break, htmlentities(wordwrap(html_entity_decode($str), $width, $break, $cut), ENT_QUOTES)), array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_COMPAT)));
}
//-> Funktion um Dateien aus einem Verzeichnis auszulesen
function get_files($dir)
{
  $dp = @opendir($dir);
  $files = array();
  while($file = @readdir($dp))
  {
    if($file != '.' && $file != '..')
      array_push($files, $file);
  }
  @closedir($dp);
  sort($files);

  return($files);
}
//-> Funktion um eine Datei im Web auf Existenz zu prüfen
function fileExists($url)
{
  $url_p = @parse_url($url);
  $host = $url_p['host'];
  $port = isset($url_p['port']) ? $url_p['port'] : 80;

  $fp = @fsockopen($url_p['host'], $port, $errno, $errstr, 5);
  if(!$fp) return false;

  @fputs($fp, 'GET '.$url_p['path'].' HTTP/1.1'.chr(10));
  @fputs($fp, 'HOST: '.$url_p['host'].chr(10));
  @fputs($fp, 'Connection: close'.chr(10).chr(10));

  $response = @fgets($fp, 1024);
  $content = @fread($fp,1024);
  $ex = explode("\n",$content);
  $content = $ex[count($ex)-1];
  @fclose ($fp);

  if(preg_match("#404#",$response)) return false;
  else return trim($content);
}
//-> Informationen ueber die mySQL-Datenbank
function dbinfo()
{
  $qry = db("Show table status");
  while($data = _fetch($qry))
  {
    $allRows = $data["Rows"];
    $dataLength  = $data["Data_length"];
    $indexLength = $data["Index_length"];

    $tableSum    = $dataLength + $indexLength;

    $sum += $tableSum;
    $rows += $allRows;
    $entrys ++;
  }
  $info["entrys"] = $entrys;
  $info["rows"] = $rows;
  $info["size"] = @round($sum/1048576,2);

  return $info;
}
//-> Funktion um Sonderzeichen zu konvertieren
function spChars($txt)
{
  $txt = str_replace("Ä","&Auml;",$txt);
  $txt = str_replace("ä","&auml;",$txt);
  $txt = str_replace("Ü","&Uuml;",$txt);
  $txt = str_replace("ü","&uuml;",$txt);
  $txt = str_replace("Ö","&Ouml;",$txt);
  $txt = str_replace("ö","&ouml;",$txt);
  $txt = str_replace("ß","&szlig;",$txt);
  $txt = str_replace("€","&euro;",$txt);

  return $txt;
}

//-> Funktion um sauber in die DB einzutragen
function up($txt, $bbcode=0, $charset='')
{
  $txt = str_replace("& ","&amp; ",$txt);
  $txt = str_replace("\"",""",$txt);

  if(empty($bbcode))
  {
    $txt = htmlentities(html_entity_decode($txt), ENT_QUOTES, $charset);
    $txt = nl2br($txt);
  }
  $txt = spChars($txt);

  return trim($txt);
}
//MySQL-Funktionen
function _rows($rows)
{
  return mysql_num_rows($rows);
}
function _fetch($fetch)
{
  return mysql_fetch_array($fetch, MYSQL_ASSOC);
}
//-> Funktion um diverse Dinge aus Tabellen auszaehlen zu lassen
function cnt($count, $where = "", $what = "id")
{
    $cnt = db("SELECT COUNT(".$what.") AS num
               FROM ".$count." ".$where);
    $cnt = _fetch($cnt);
    return $cnt['num'];
}
//-> Funktion um diverse Dinge aus Tabellen zusammenzaehlen zu lassen
function sum($db, $where = "", $what)
{
  $cnt = db("SELECT SUM(".$what.") AS num
             FROM ".$db.$where);
  $cnt = _fetch($cnt);

  return $cnt['num'];
}
//-> Funktion um einer id einen Nick zuzuweisen
function nick_id($tid)
{
  global $db;
    $qry = db("SELECT nick FROM ".$db['users']."
               WHERE id = '".$tid."'");
    $get = _fetch($qry);

  return $get['nick'];
}
//-> Funktion um ein Datenbankinhalt zu highlighten
function highlight($word)
{
  if(substr(phpversion(),0,1) == 5) $word = str_ireplace($word,'<span class="fontRed">'.$word.'</span>',$word);
  else $word = str_replace($word,'<span class="fontRed">'.$word.'</span>',$word);

  return $word;
}
//-> Counter updaten
function updateCounter()
{
  global $db,$reload,$today,$datum,$userip;
    $ipcheck = db("SELECT id,ip,datum FROM ".$db['c_ips']."
                   WHERE ip = '".$userip."'
                   AND FROM_UNIXTIME(datum,'%d.%m.%Y') = '".date("d.m.Y")."'");
    $get = _fetch($ipcheck);

    $qry = db("DELETE FROM ".$db['c_ips']."
               WHERE datum+".$reload." <= ".time()."
               OR FROM_UNIXTIME(datum,'%d.%m.%Y') != '".date("d.m.Y")."'");

    $count = db("SELECT id,visitors,today FROM ".$db['counter']."
                 WHERE today = '".$today."'");
    if(_rows($ipcheck)>=1)
    {
      $sperrzeit = $get['datum']+$reload;
      if($sperrzeit <= time())
      {
        $qry = db("DELETE FROM ".$db['c_ips']."
                   WHERE ip = '".$userip."'");
        if(_rows($count))
        {
          $qry = db("UPDATE ".$db['counter']."
                     SET `visitors` = visitors+1
                     WHERE today = '".$today."'");
        } else {
          $qry = db("INSERT INTO ".$db['counter']."
                     SET `visitors` = '1',
                         `today`    = '".$today."'");
        }
        $qry = db("INSERT INTO ".$db['c_ips']."
                   SET `ip`     = '".$userip."',
                       `datum`  = '".((int)$datum)."'");
      }
    } else {
      if(_rows($count))
      {
        $qry = db("UPDATE ".$db['counter']."
                   SET `visitors` = visitors+1
                   WHERE today = '".$today."'");
      } else {
        $qry = db("INSERT INTO ".$db['counter']."
                   SET `visitors` = '1',
                       `today`    = '".$today."'");
      }
      $qry = db("INSERT INTO ".$db['c_ips']."
                 SET `ip`     = '".$userip."',
                     `datum`  = '".((int)$datum)."'");
    }
}
//-> Updatet die Maximalen User die gleichzeitig online sind
function update_maxonline()
{
  global $db,$today;
    $qry = db("SELECT maxonline FROM ".$db['counter']."
               WHERE today = '".$today."'");
    $get = _fetch($qry);

    $count = cnt($db['c_who']);
    if($get['maxonline'] <= $count)
    {
      $update = db("UPDATE ".$db['counter']."
                    SET `maxonline` = '".((int)$count)."'
                    WHERE today = '".$today."'");
    }
}
//-> Prueft, wieviele Besucher gerade online sind
function online_guests($where='')
{
  global $db,$useronline,$userip,$chkMe,$isSpider;
  if(!$isSpider)
  {
    if($chkMe == 'unlogged') $logged = 0;
    else $logged = 1;

    $qry = db("DELETE FROM ".$db['c_who']."
               WHERE online < ".time());

    $qry = db("REPLACE INTO ".$db['c_who']."
               SET `ip`       = '".$userip."',
                   `online`   = '".((int)(time()+$useronline))."',
                   `whereami` = '".up($where)."',
                   `login`    = '".((int)$logged)."'");

    $count = cnt($db['c_who']);

    return $count;
  }
}
//-> Prueft, wieviele registrierte User gerade online sind
function online_reg()
{
  global $db,$useronline;
    $count = cnt($db['users'], " WHERE time+'".$useronline."'>'".time()."' AND online = '1'");
  return $count;
}
//-> Prueft den Zahlstatus eines Users (Clankasse)
function paycheck($tocheck)
{
  if($tocheck >= time()) return TRUE;
  else return FALSE;
}
//-> Prueft, ob User eingeloggt ist und wenn ja welches Level er besitzt
function checkme()
{
  global $db,$userid;
    $qry = db("SELECT level FROM ".$db['users']."
               WHERE id = '".intval($userid)."'
               AND pwd = '".$_SESSION['pwd']."'
               AND ip = '".$_SESSION['ip']."'");
    if(_rows($qry))
    {
      $get = _fetch($qry);
      return $get['level'];
    } else {
      return "unlogged";
    }
}
//-> Prueft, ob ein User diverse Rechte besitzt
function permission($check)
{
  global $db,$userid,$chkMe;
    if($chkMe == 4) return true;
    else {
      if($userid)
      {
      // check rank permission
        $team = db("SELECT s1.`".$check."` FROM ".$db['permissions']." AS s1
                    LEFT JOIN ".$db['userpos']." AS s2 ON s1.`pos` = s2.`posi`
                    WHERE s2.`user` = '".intval($userid)."' AND s1.`".$check."` = '1' AND s2.`posi` != '0'");

      // check user permission
        $user = db("SELECT id FROM ".$db['permissions']." WHERE user = '".intval($userid)."' AND `".$check."` = '1'");

        if(_rows($user) || _rows($team)) return true;
        else return false;
      } else return false;
    }
}
//-> Checkt, ob neue Nachrichten vorhanden sind
function check_msg()
{
  global $db;
    $qry = db("SELECT page FROM ".$db['msg']."
               WHERE an = '".$_SESSION['id']."'
               AND page = 0");
    if(_rows($qry))
    {
      $upd = db("UPDATE ".$db['msg']."
                 SET `page` = '1'
                 WHERE an = '".$_SESSION['id']."'");
      return show("user/new_msg", array("new" => _site_msg_new));
    }
}
//-> Prueft sicherheitsrelevante Gegebenheiten im Forum
function forumcheck($tid, $what)
{
  global $db;
    $qry = db("SELECT ".$what." FROM ".$db['f_threads']."
               WHERE id = '".intval($tid)."'
               AND ".$what." = '1'");

    if(_rows($qry)) return TRUE;
    else return FALSE;
}
//-> Prüft, ob User ein Member des Squads ist
function squadmember($squad_id)
{
  global $db;
    $qry = db("SELECT id FROM ".$db['squaduser']."
               WHERE squad = '".intval($squad_id)."'
               AND user = '".$_SESSION['id']."'");

    if(_rows($qry)) return true;
}
//-> Gibt ein selectfield mit Ja und Nein aus
function select_field($what,$where,$tid)
{
  global $db;
    $qry = db("SELECT ".$what." FROM ".$db[$where]."
               WHERE user = '".intval($tid)."'
               AND ".$what." = '1'");
    if($get = _rows($qry))
    {
      return "<option value=\"0\">"._no."</option>
              <option value=\"1\" selected=\"selected\">"._yes."</option>";
    } else {
      return "<option value=\"0\">"._no."</option>
              <option value=\"1\">"._yes."</option>";
    }
}
//-> Prueft ob ein User schon in der Buddyliste vorhanden ist
function check_buddy($buddy)
{
  global $db,$userid;
    $qry = db("SELECT buddy FROM ".$db['buddys']."
               WHERE user = '".intval($userid)."'
               AND buddy = '".intval($buddy)."'");

    if(!_rows($qry)) return TRUE;
    else return FALSE;
}
//-> Funktion um bei Clanwars Endergebnisse auszuwerten
function cw_result($punkte, $gpunkte)
{
  if($punkte > $gpunkte)
    $result = '<span class="CwWon">'.$punkte.':'.$gpunkte.'</span> <img src="../inc/images/won.gif" alt="" class="icon" />';
  elseif($punkte < $gpunkte)
    $result = '<span class="CwLost">'.$punkte.':'.$gpunkte.'</span> <img src="../inc/images/lost.gif" alt="" class="icon" />';
  else
    $result = '<span class="CwDraw">'.$punkte.':'.$gpunkte.'</span> <img src="../inc/images/draw.gif" alt="" class="icon" />';

  return $result;
}
function cw_result_pic($punkte, $gpunkte)
{
  if($punkte > $gpunkte)
    $result = '<img src="../inc/images/won.gif" alt="" class="icon" />';
  elseif($punkte < $gpunkte)
    $result = '<img src="../inc/images/lost.gif" alt="" class="icon" />';
  else
    $result = '<img src="../inc/images/draw.gif" alt="" class="icon" />';

  return $result;
}
//-> Funktion um bei Clanwars Endergebnisse auszuwerten ohne bild
function cw_result_nopic($punkte, $gpunkte)
{
  if($punkte > $gpunkte) $result = '<span class="CwWon">'.$punkte.':'.$gpunkte.'</span>';
  elseif($punkte < $gpunkte) $result = '<span class="CwLost">'.$punkte.':'.$gpunkte.'</span>';
  else $result = '<span class="CwDraw">'.$punkte.':'.$gpunkte.'</span>';

  return $result;
}
function cw_result_nopic_raw($punkte, $gpunkte)
{
  if($punkte > $gpunkte) $result = '<span class=CwWon>'.$punkte.':'.$gpunkte.'</span>';
  elseif($punkte < $gpunkte) $result = '<span class=CwLost>'.$punkte.':'.$gpunkte.'</span>';
  else $result = '<span class=CwDraw>'.$punkte.':'.$gpunkte.'</span>';

  return $result;
}
//-> Funktion um bei Clanwars Details Endergebnisse auszuwerten ohne bild
function cw_result_details($punkte, $gpunkte)
{
  if($punkte > $gpunkte)
  {
    $result = '<td class="contentMainFirst" align="center"><span class="CwWon">'.$punkte.'</span></td>
	             <td class="contentMainFirst" align="center"><span class="CwLost">'.$gpunkte.'</span></td>';
  } elseif($punkte < $gpunkte) {
    $result = '<td class="contentMainFirst" align="center"><span class="CwLost">'.$punkte.'</span></td>
	             <td class="contentMainFirst" align="center"><span class="CwWon">'.$gpunkte.'</span></td>';
  } else {
    $result = '<td class="contentMainFirst" align="center"><span class="CwDraw">'.$punkte.'</span></td>
	             <td class="contentMainFirst" align="center"><span class="CwDraw">'.$gpunkte.'</span></td>';
  }

  return $result;
}
//-> Flaggen ausgeben
function flag($code)
{
  if(!file_exists(basePath."/inc/images/flaggen/".$code.".gif"))
    return '<img src="../inc/images/flaggen/nocountry.gif" alt="" class="icon" />';
  else return'<img src="../inc/images/flaggen/'.$code.'.gif" alt="" class="icon" />';
}
function rawflag($code)
{
  if(!file_exists(basePath."/inc/images/flaggen/".$code.".gif"))
    return '<img src=../inc/images/flaggen/nocountry.gif alt= class=icon />';
  else return'<img src=../inc/images/flaggen/'.$code.'.gif alt= class=icon />';
}
//-> Liste der Laender ausgeben
function show_countrys($i="")
{
  if($i != "")
    $options = preg_replace('#<option value="'.$i.'">(.*?)</option>#', '<option value="'.$i.'" selected="selected"> \\1</option>', _country_list);
  else
    $options = preg_replace('#<option value="de"> Deutschland</option>#', '<option value="de" selected="selected"> Deutschland</option>', _country_list);

  $countrys = '<select id="land" name="land" class="dropdown">'.$options.'</select>';

  return $countrys;
}
//-> Gameicon ausgeben
function squad($code)
{
  if(!isset($code)) return '<img src="../inc/images/gameicons/nogame.gif" alt="" class="icon" />';
  else              return '<img  src="../inc/images/gameicons/'.$code.'" alt="" class="icon" />';
}
//-> Funktion um bei DB-Eintraegen URLs einem http:// zuzuweisen
function links($hp)
{
  if(!empty($hp))
  {
	  $link = str_replace("http://","",$hp);
    return 'http://'.$link;
  }
}
//-> Funktion um Passwoerter generieren zu lassen
function mkpwd()
{
  $k = array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");
  $v = array("a","e","i","o","u");
  $z = array("1","2","3","4","5","6","7","8","9","0");
  srand ((double)microtime()*1000000);
  for($f=1; $f<=4; $f++)
  {
    $pwd.=$k[rand(0,19)];
    $pwd.=$v[rand(0,4)];
  }
  for($f=1; $f<=2; $f++)
  {
    $zahl.=$z[rand(0,10)];
  }

  return $pwd.$zahl;
}
//-> set cookies
function set_cookie($name, $value = '', $path = '/', $secure = false, $http_only = true)
{
  if($value == '') $expires = time() - 6000;
  else             $expires = time() + 3600 * 24 * 360;
  $domain = $_SERVER['HTTP_HOST'];

  if(strtolower(substr($domain, 0, 4)) == 'www.') $domain = substr($domain, 4);
  $domain = '.' . $domain;

  $port = strpos($domain, ':');
  if($port !== false) $domain = substr($domain, 0, $port);

  header('Set-Cookie: ' . rawurlencode($name) . '=' . rawurlencode($value)
                        . (empty($expires) ? '' : '; expires=' . gmdate('D, d-M-Y H:i:s \\G\\M\\T', $expires))
                        . (empty($path)    ? '' : '; path=' . $path)
                        . '; domain=' . $domain
                        . (!$secure        ? '' : '; secure')
                        . (!$http_only    ? '' : '; HttpOnly'), false);
}
//-> Passwortabfrage
function checkpwd($user, $pwd)
{
  global $db;
    $qry = db("SELECT id,user,nick,pwd
               FROM ".$db['users']."
               WHERE user = '".up($user)."'
               AND pwd = '".up($pwd)."'
               AND level != '0'");

    if(_rows($qry)) return TRUE;
}

//-> Infomeldung ausgeben
function info($msg, $url, $timeout = 2)
{
  global $c;
  
  if($c['direct_refresh'] == 1) {
    return header('Location: '.str_replace('&amp;', '&', $url));
  } 

  $u = parse_url($url);
  $u['query'] = str_replace('&amp;', '&', $u['query']);
  foreach(explode('&', $u['query']) as $p)
  {
    $p = explode('=', $p);
    if(count($p) == 2) $parts .= '<input type="hidden" name="'.$p[0].'" value="'.$p[1].'" />'."\r\n";
  }
  
  return show("errors/info", array("msg" => $msg,
                                   "url" => $u['path'],
                                   "rawurl" => html_entity_decode($url),
                                   "parts" => $parts,
                                   "timeout" => $timeout,
                                   "info" => _info,
                                   "weiter" => _weiter,
                                   "backtopage" => _error_fwd));
}
//-> Errormmeldung ausgeben
function error($error, $back=1)
{
  return show("errors/error", array("error" => $error,
                                    "back" => $back,
                                    "fehler" => _error,
                                    "backtopage" => _error_back));
}
//-> Errormmeldung ohne "zurueck" ausgeben
function error2($error)
{
  return show("errors/error2", array("error" => $error,
                                     "fehler" => _error));
}
//-> Email wird auf korrekten Syntax & Erreichbarkeit ueberprueft
function check_email($email)
{
  if(!preg_match("#^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$#", $email)) return false;
  else return true;
}

//-> Bilder verkleinern
function img_size($img)
{
  $s = getimagesize("../".$img);
  $pic = "<a href=\"../".$img."\" rel=\"lightbox[l_".intval($img)."]\"><img src=\"../thumbgen.php?img=".$img."\" alt=\"\" /></a>";
  return $pic;
}
function img_cw($folder="", $img="")
{
  $s = getimagesize("../".$folder."_".$img);
  $pic = "<a href=\"../".$folder."_".$img."\" rel=\"lightbox[cw_".intval($folder)."]\"><img src=\"../thumbgen.php?img=".$folder."_".$img."\" alt=\"\" /></a>";
  return $pic;
}
function gallery_size($img="")
{
  $s = getimagesize("../gallery/images/".$img);
  $pic = "<a href=\"../gallery/images/".$img."\" rel=\"lightbox[gallery_".intval($img)."]\"><img src=\"../thumbgen.php?img=gallery/images/".$img."\" alt=\"\" /></a>";
  return $pic;
}
//-> URL wird auf Richtigkeit ueberprueft
function check_url($url)
{
  if($url) $fp = @fopen ($url, "r");
  if($fp)
  {
    return true;
    @fclose($fp);
  } else {
    return false;
  }
}
//-> Blaetterfunktion
function nav($entrys, $perpage, $urlpart, $icon=true)
{
    global $page, $_SERVER;

      if($icon == true) $icon = '<img src="../inc/images/multipage.gif" alt="" class="icon" /> '._seiten;

      if($entrys <= $perpage) return $icon.' « <span class="fontSites">1</span> »';
      if(!$page || $page < 1) $page = 2;

      $pages = ceil($entrys/$perpage);
      $result = "";

      if(($page-5) <= 2 && $page != 1)
        $first = '<a class="sites" href="'.$urlpart.'&amp;page='.($page-1).'">«</a><span class="fontSitesMisc"> </span> <a  class="sites" href="'.$urlpart.'&amp;page=1">1</a> ';
      elseif($page > 1)
        $first = '<a class="sites" href="'.$urlpart.'&amp;page='.($page-1).'">«</a><span class="fontSitesMisc"> </span> <a class="sites" href="'.$urlpart.'&amp;page=1">1</a>...';
      else $first .= '<span class="fontSitesMisc">« </span>';

      if($page == $pages) $last = '<span class="fontSites">'.$pages.'</span><span class="fontSitesMisc"> »<span>';
      elseif(($page+5) >= $pages)
        $last = '<a class="sites" href="'.$urlpart.'&amp;page='.($pages).'">'.$pages.'</a> <a class="sites" href="'.$urlpart.'&amp;page='.($page+1).'">»</a>';
      else
        $last = '...<a class="sites" href="'.$urlpart.'&amp;page='.($pages).'">'.$pages.'</a> <a class="sites" href="'.$urlpart.'&amp;page='.($page+1).'">»</a>';

      for($i = $page;$i<=($page+5) && $i<=($pages-1);$i++)
      {
        if($i == $page) $result .= '<span class="fontSites">'.$i.'</span><span class="fontSitesMisc"> </span>';
        else $result .= '<a class="sites" href="'.$urlpart.'&amp;page='.$i.'">'.$i.'</a><span class="fontSitesMisc"> </span>';
      }
      for($i=($page-5);$i<=($page-1);$i++)
      {
        if($i >= 2) $resultm .= '<a class="sites" href="'.$urlpart.'&amp;page='.$i.'">'.$i.'</a> ';
      }

    return $icon.' '.$first.$resultm.$result.$last;
}
//-> Funktion um Seiten-Anzahl der Artikel zu erhalten
function artikelSites($sites, $id)
{
  global $part;
    $i = 0;
    $seiten = "";
    for($i=0;$i<$sites;$i++)
    {
      if ($i == $part)
      {
        $seiten .= show(_page, array("num" => ($i+1)));
      } else {
        $seiten .= show(_artike_sites, array("part" => $i,
                                             "id" => $id,
                                             "num" => ($i+1)));
      }
    }
  return $seiten;
}
//-> Nickausgabe mit Profillink oder Emaillink (reg/nicht reg)
function autor($uid, $class="", $nick="", $email="", $cut="",$add="")
{
  global $db;
    $qry = db("SELECT nick,country FROM ".$db['users']."
               WHERE id = '".intval($uid)."'");
    $get = _fetch($qry);
    if(_rows($qry))
    {
      $result = show(_user_link, array("id" => $uid,
				                               "country" => flag($get['country']),
                                       "class" => $class,
                                       "get" => $add,
                                       "nick" => re($get['nick'])));
    } else {
      $result = show(_user_link_noreg, array("nick" => re($nick),
                                             "class" => $class,
                                             "email" => eMailAddr($email)));
    }

  return $result;
}
function cleanautor($uid, $class="", $nick="", $email="", $cut="")
{
  global $db;
    $qry = db("SELECT nick,country FROM ".$db['users']."
               WHERE id = '".intval($uid)."'");
    $get = _fetch($qry);
    if(_rows($qry))
    {
      $result = show(_user_link_preview, array("id" => $uid,
        				                               "country" => flag($get['country']),
                                               "class" => $class,
                                               "nick" => re($get['nick'])));
    } else {
      $result = show(_user_link_noreg, array("nick" => re($nick),
                                             "class" => $class,
                                             "email" => eMailAddr($email)));
    }

  return $result;
}
function rawautor($uid)
{
  global $db;

  $qry = db("SELECT nick,country FROM ".$db['users']."
             WHERE id = '".intval($uid)."'");
  $get = _fetch($qry);

  if(!_rows($qry)) $nick = rawflag('')." ".jsconvert(re($uid));
  else             $nick = rawflag($get['country'])." ".jsconvert(re($get['nick']));

  return $nick;
}
//-> Nickausgabe ohne Profillink oder Emaillink für das ForenAbo
function fabo_autor($uid)
{
  global $db;
    $qry = db("SELECT nick FROM ".$db['users']."
               WHERE id = '".$uid."'");
    $get = _fetch($qry);
    if(_rows($qry))

      $result = show(_user_link_fabo, array("id" => $uid,
				            "nick" => re($get['nick'])));

  return $result;
}
function blank_autor($uid)
{
  global $db;
    $qry = db("SELECT nick FROM ".$db['users']."
               WHERE id = '".$uid."'");
    $get = _fetch($qry);
    if(_rows($qry))

      $result = show(_user_link_blank, array("id" => $uid,
				                                     "nick" => re($get['nick'])));

  return $result;
}
//-> Rechte abfragen
function jsconvert($txt)
{
  $txt = str_replace("'","\'",$txt);
  $txt = str_replace("'","\'",$txt);
  $txt = str_replace("\"","&quot;",$txt);
  $txt = str_replace("\r",'',$txt);
  $txt = str_replace("\n",'',$txt);

  return $txt;
}
//-> interner Forencheck
function fintern($id)
{
  global $db,$userid,$chkMe;
    $fget = _fetch(db("SELECT s1.intern,s2.id FROM ".$db['f_kats']." AS s1
                       LEFT JOIN ".$db['f_skats']." AS s2 ON s2.`sid` = s1.id
                       WHERE s2.`id` = '".intval($id)."'"));

    if($chkMe == "unlogged") return empty($fget['intern']) ? true : false;
    else {
    // team
      $team = db("SELECT * FROM ".$db['f_access']." AS s1 LEFT JOIN ".$db['userpos']." AS s2 ON s1.`pos` = s2.`posi`
                  WHERE s2.`user` = '".intval($userid)."' AND s2.`posi` != '0' AND s1.`forum` = '".intval($id)."'");
    // user
      $user = db("SELECT * FROM ".$db['f_access']." WHERE `user` = '".intval($userid)."' AND `forum` = '".intval($id)."'");

      if(_rows($user) || _rows($team) || $chkMe == 4 || $fget['intern'] == 0) return true;
                                                else if($chkMe == "unlogged") return false;
    }
}
//-> einzelne Userdaten ermitteln
function data($tid, $what)
{
  global $db;
    $qry = db("SELECT ".$what." FROM ".$db['users']."
               WHERE id = '".intval($tid)."'");
    $get = _fetch($qry);

    $result = re_entry($get[$what]);
  return $result;
}
//-> einzelne Userstatistiken ermitteln
function userstats($tid, $what)
{
  global $db;
    $qry = db("SELECT ".$what." FROM ".$db['userstats']."
               WHERE user = '".intval($tid)."'");
    $get = _fetch($qry);

    $result = $get[$what];
  return $result;
}
//- Funktion zum versenden von Emails
function sendMail($mailto,$subject,$content)
{
  global $mailfrom;

  $mail = new Mailer();
  $mail->IsHTML(true);
  $mail->From = $mailfrom;
  $mail->FromName = $mailfrom;
  $mail->AddAddress(preg_replace('/(\\n+|\\r+|%0A|%0D)/i', '',$mailto));
  $mail->Subject = $subject;
  $mail->Body = bbcode_nletter($content);
  $mail->AltBody = bbcode_nletter_plain($content);

	return $mail->Send();
}
function check_msg_emal()
{
  global $db,$clanname,$httphost;
    $qry = db("SELECT s1.an,s1.page,s1.titel,s1.sendmail,s1.id AS mid,s2.id,s2.nick,s2.email,s2.pnmail FROM ".$db['msg']." AS s1
			   LEFT JOIN ".$db['users']." AS s2 ON s2.id = s1.an
               WHERE page = 0
			   AND sendmail = 0");
    while($get = _fetch($qry))
    {
      if($get['pnmail'] == 1)
  	  {
  	  	$upd = db("UPDATE ".$db['msg']." SET `sendmail` = '1' WHERE id = '".$get['mid']."'");

  	  	$subj = show(settings('eml_pn_subj'), array("domain" => $httphost));

  	 	  $message = show(settings('eml_pn'), array("nick" => re($get['nick']),
  	  											                      "domain" => $httphost,
                              									  "titel" => $get['titel'],
                              										"clan" => $clanname));

  	  	sendMail(re($get['email']), $subj, $message);
  	  }
    }
}
check_msg_emal();
function perm_sendnews($uID)
{
  global $db;
 // check rank permission
	 $team = db("SELECT s1.`news` FROM ".$db['permissions']." AS s1
							 LEFT JOIN ".$db['userpos']." AS s2 ON s1.`pos` = s2.`posi`
							 WHERE s2.`user` = '".intval($uID)."' AND s1.`news` = '1' AND s2.`posi` != '0'");

 // check user permission
	 $user = db("SELECT id FROM ".$db['permissions']." WHERE user = '".intval($uID)."' AND `news` = '1'");

	 if(_rows($user) || _rows($team)) return true;
	 else return false;
}
//-> selektiert die SteamID zum Abgleich mit anderen Daten
function steamid($nick,$steamid)
{
  global $db;
    $steamid = str_replace('STEAM_','',$steamid);

    $qry = db("SELECT id,nick,steamid
               FROM ".$db['users']."
               WHERE steamid = '".$steamid."'");
    if(_rows($qry))
    {
      $get = _fetch($qry);

      $result = show(_user_link, array("id" => $get['id'],
                                       "nick" => $get['nick'],
                                       "country" => flag($get['id'])));
    } else {
      $result = re($nick);
    }
  return $result;
}
//-> Checkt ob ein Ereignis neu ist
function check_new($datum,$new = "",$datum2 = "")
{
  global $db,$userid;
    if($userid)
    {
      $qry = db("SELECT lastvisit FROM ".$db['userstats']."
                 WHERE user = '".intval($userid)."'");
      $get = _fetch($qry);

      if($datum >= $get['lastvisit'] || $datum2 >= $get['lastvisit'])
      {
        if(empty($new)) return _newicon;
        else return true;
      }
    }
}
//-> DropDown Menüs Date/Time
function dropdown($what, $wert, $age = 0)
{
  if($what == "day")
  {
    if($age == 1)
    {
      $return .='<option value="" class="dropdownKat">'._day.'</option>'."\n";
    }
    for($i=1; $i<32; $i++)
    {
      if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
      else $return .= "<option value=\"".$i."\">".$i."</option>\n";
    }
  } elseif($what == "month") {
    if($age == 1)
    {
      $return .='<option value="" class="dropdownKat">'._month.'</option>'."\n";
    }
    for($i=1; $i<13; $i++)
    {
      if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
      else $return .= "<option value=\"".$i."\">".$i."</option>\n";
    }
  } elseif($what == "year") {
    if($age == 1)
    {
      $return .='<option value="" class="dropdownKat">'._year.'</option>'."\n";
      for($i=date("Y",time())-80; $i<date("Y",time())-10; $i++)
      {
        if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
        else $return .= "<option value=\"".$i."\">".$i."</option>\n";
      }
    } else {
      for($i=date("Y",time())-3; $i<date("Y",time())+3; $i++)
      {
        if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
        else $return .= "<option value=\"".$i."\">".$i."</option>\n";
      }
    }
  } elseif($what == "hour") {
    for($i=0; $i<24; $i++)
    {
      if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
      else $return .= "<option value=\"".$i."\">".$i."</option>\n";
    }
  } elseif($what == "minute") {
    for($i="00"; $i<60; $i++)
    {
      if($i == 0 || $i == 15 || $i == 30 || $i == 45)
      {
	      if($i==$wert) $return .= "<option value=\"".$i."\" selected=\"selected\">".$i."</option>\n";
	      else $return .= "<option value=\"".$i."\">".$i."</option>\n";
      }
    }
  }
  return $return;
}

//Games fuer den Livestatus
function sgames($game = '')
{
  $protocols = get_files(basePath.'/inc/server_query/');
  foreach($protocols AS $protocol)
  {
    unset($gamemods, $server_name_config);
    $protocol = str_replace('.php', '', $protocol);
    if(substr($protocol, 0, 1) != '_')
    {
      $explode = '##############################################################################################################################';
      $protocol_config = explode($explode, file_get_contents(basePath.'/inc/server_query/'.$protocol.'.php'));
      eval(str_replace('<?php', '', $protocol_config[0]));

      if(!empty($server_name_config) && count($server_name_config) > 2) {
        foreach($server_name_config AS $slabel => $sconfig) {
          $gamemods .= $sconfig[1].', ';
        }
      }
      $gamemods = empty($gamemods) ? '' : ' ('.substr($gamemods, 0, strlen($gamemods) - 2).')';
      
      $games .= '<option value="'.$protocol.'">';
      switch($protocol):
        case 'bf1942'; case 'bf2142'; case 'bf2'; case 'bfvietnam'; case 'bfbc2';
          $protocol = strtr($protocol, array('bfbc2' => 'Battlefield Bad Company 2', 'bfv' => 'Battlefield V', 'bf' => 'Battlefield '));
        break;
        case 'swat4'; $protocol = strtoupper($protocol); break;
        case 'aarmy'; $protocol = 'Americas Army'; break;
        case 'arma'; $protocol = 'Armed Assault'; break;
        case 'wet'; $protocol = 'Wolfenstein: Enemy Territory'; break;
        case 'mta'; $protocol = 'Multi-Theft-Auto'; break;
        case 'cnc'; $protocol = 'Command &amp; Conquer'; break;
        case 'sof2'; $protocol = 'Soldiers of Fortune 2'; break;
        case 'ut'; $protocol = 'Unreal Tournament'; break;
        default;

          $protocol = ucfirst(str_replace('_', ' ', $protocol));
          $protocol = (strlen($protocol) < 4) ? strtoupper($protocol) : $protocol;
        break;
      endswitch;
      $games .= $protocol.$gamemods;
      $games .= '</option>';
    }
  }

  $games = str_replace("value=\"".$game."\"","value=\"".$game."\" selected=\"selected\"",$games);

  return $games;
}
//Umfrageantworten selektieren
function voteanswer($what, $vid)
{
  global $db;
  $qry = db("SELECT * FROM ".$db['vote_results']."
             WHERE what = '".up($what)."'
             AND vid = '".$vid."'");
  $get = _fetch($qry);

  return $get['sel'];
}
//Profilfelder konvertieren
function conv($txt)
{
  $txt = str_replace("Ä","ae",$txt);
  $txt = str_replace("ä","ae",$txt);
  $txt = str_replace("Ü","ue",$txt);
  $txt = str_replace("ü","ue",$txt);
  $txt = str_replace("Ö","oe",$txt);
  $txt = str_replace("ö","oe",$txt);
  $txt = str_replace("ß","ss",$txt);

  return $txt;
}
//PHPInfo in array lesen
function parsePHPInfo()
{
   ob_start();
     phpinfo();
     $s = ob_get_contents();
   ob_end_clean();

   $s = strip_tags($s,'<h2><th><td>');
   $s = preg_replace('/<th[^>]*>([^<]+)<\/th>/',"<info>\\1</info>",$s);
   $s = preg_replace('/<td[^>]*>([^<]+)<\/td>/',"<info>\\1</info>",$s);
   $vTmp = preg_split('/(<h2[^>]*>[^<]+<\/h2>)/',$s,-1,PREG_SPLIT_DELIM_CAPTURE);
   $vModules = array();
   for ($i=1;$i<count($vTmp);$i++)
   {
     if(preg_match('/<h2[^>]*>([^<]+)<\/h2>/',$vTmp[$i],$vMat))
     {
       $vName = trim($vMat[1]);
       $vTmp2 = explode("\n",$vTmp[$i+1]);
       foreach ($vTmp2 AS $vOne)
       {
        $vPat = '<info>([^<]+)<\/info>';
        $vPat3 = "/$vPat\s*$vPat\s*$vPat/";
        $vPat2 = "/$vPat\s*$vPat/";
        if(preg_match($vPat3,$vOne,$vMat))
          $vModules[$vName][trim($vMat[1])] = array(trim($vMat[2]),trim($vMat[3]));
        elseif (preg_match($vPat2,$vOne,$vMat))
          $vModules[$vName][trim($vMat[1])] = trim($vMat[2]);
      }
    }
  }
  return $vModules;
}
//-> Prueft, ob eine Userid existiert
function exist($tid)
{
  global $db;
    $qry = db("SELECT id FROM ".$db['users']."
               WHERE id = '".intval($tid)."'");

    if(_rows($qry)) return TRUE;
    else return FALSE;
}
//-> Geburtstag errechnen
function getAge($bday)
{
  if(!empty($bday) || $bday == '..')
  {
    list($tiday,$iMonth,$iYear) = explode(".",$bday);
    $iCurrentDay = date('j');
    $iCurrentMonth = date('n');
    $iCurrentYear = date('Y');

    if(($iCurrentMonth>$iMonth) || (($iCurrentMonth==$iMonth) && ($iCurrentDay>=$tiday)))
      $iAlter = $iCurrentYear - $iYear;
    else $iAlter = $iCurrentYear - ($iYear + 1);
  } else $iAlter = '-';

  return $iAlter;
}
//-> Ausgabe der Position des einzelnen Members
function getrank($tid, $squad="", $profil=0)
{
  global $db;
    if($squad)
    {
      if($profil == 1)
      {
        $qry = db("SELECT * FROM ".$db['userpos']." AS s1
                   LEFT JOIN ".$db['squads']." AS s2
                   ON s1.squad = s2.id
                   WHERE s1.user = '".intval($tid)."'
                   AND s1.squad = '".intval($squad)."'
                   AND s1.posi != '0'");
      } else {
        $qry = db("SELECT * FROM ".$db['userpos']."
                   WHERE user = '".intval($tid)."'
                   AND squad = '".intval($squad)."'
                   AND posi != '0'");
      }
      if(_rows($qry))
      {
        while($get = _fetch($qry))
        {
          $qryp = db("SELECT * FROM ".$db['pos']."
                      WHERE id = '".intval($get['posi'])."'");
          $getp = _fetch($qryp);

          if(!empty($get['name'])) $squadname = '<b>'.$get['name'].':</b> ';
          else $squadname = '';

          return $squadname.$getp['position'];
        }
      } else {
        $qry = db("SELECT level FROM ".$db['users']."
                   WHERE id = '".intval($tid)."'");
        $get = _fetch($qry);

        if($get['level'] == 0)            return _status_unregged;
        elseif($get['level'] == 1)        return _status_user;
        elseif($get['level'] == 2)        return _status_trial;
        elseif($get['level'] == 3)        return _status_member;
        elseif($get['level'] == 4)        return _status_admin;
        elseif($get['level'] == 'banned') return _status_banned;
        else return _gast;
      }
    } else {
      $qry = db("SELECT s1.*,s2.position FROM ".$db['userpos']." AS s1
                 LEFT JOIN ".$db['pos']." AS s2
                 ON s1.posi = s2.id
                 WHERE s1.user = '".intval($tid)."'
                 AND s1.posi != '0'
                 ORDER BY s2.pid ASC");
      if(_rows($qry))
      {
        $get = _fetch($qry);
        return $get['position'];
      } else {
        $qry = db("SELECT level FROM ".$db['users']."
                   WHERE id = '".intval($tid)."'");
        $get = _fetch($qry);

        if($get['level'] == 0)            return _status_unregged;
        elseif($get['level'] == 1)        return _status_user;
        elseif($get['level'] == 2)        return _status_trial;
        elseif($get['level'] == 3)        return _status_member;
        elseif($get['level'] == 4)        return _status_admin;
        elseif($get['level'] == 'banned') return _status_banned;
        else return _gast;
      }
    }
}
//-> Session fuer den letzten Besuch setzen
function set_lastvisit()
{
  global $db,$useronline,$userid;
    if($userid)
    {
      $qry = db("SELECT id FROM ".$db['users']."
                 WHERE id = ".intval($userid)."
                 AND time+'".$useronline."'>'".time()."'");

      if(!_rows($qry))
      {
        $time = data($userid, "time");
        $_SESSION['lastvisit'] = $time;
      }
    }
}
//-> Checkt welcher User gerade noch online ist
function onlinecheck($tid)
{
  global $db,$useronline;
    $qry = db("SELECT id FROM ".$db['users']."
               WHERE id = '".intval($tid)."'
               AND time+'".$useronline."'>'".time()."'
               AND online = 1");

    if(_rows($qry)) return "<img src=\"../inc/images/online.gif\" alt=\"\" class=\"icon\" />";
    else return "<img src=\"../inc/images/offline.gif\" alt=\"\" class=\"icon\" />";
}
//Funktion fuer die Sprachdefinierung der Profilfelder
function pfields_name($name)
{
	$name = preg_replace("=_city_=Uis", _profil_city, $name);
	$name = preg_replace("=_hobbys_=Uis", _profil_hobbys, $name);
	$name = preg_replace("=_job_=Uis", _profil_job, $name);
	$name = preg_replace("=_motto_=Uis", _profil_motto, $name);
	$name = preg_replace("=_exclans_=Uis", _profil_exclans, $name);
	$name = preg_replace("=_email2_=Uis", _profil_email2, $name);
	$name = preg_replace("=_email3_=Uis", _profil_email3, $name);
	$name = preg_replace("=_autor_=Uis", _profil_autor, $name);
	$name = preg_replace("=_auto_=Uis", _profil_auto, $name);
	$name = preg_replace("=_buch_=Uis", _profil_buch, $name);
	$name = preg_replace("=_drink_=Uis", _profil_drink, $name);
	$name = preg_replace("=_essen_=Uis", _profil_essen, $name);
	$name = preg_replace("=_favoclan_=Uis", _profil_favoclan, $name);
	$name = preg_replace("=_film_=Uis", _profil_film, $name);
	$name = preg_replace("=_game_=Uis", _profil_game, $name);
	$name = preg_replace("=_map_=Uis", _profil_map, $name);
	$name = preg_replace("=_musik_=Uis", _profil_musik, $name);
	$name = preg_replace("=_person_=Uis", _profil_person, $name);
	$name = preg_replace("=_song_=Uis", _profil_song, $name);
	$name = preg_replace("=_spieler_=Uis", _profil_spieler, $name);
	$name = preg_replace("=_sportler_=Uis", _profil_sportler, $name);
	$name = preg_replace("=_sport_=Uis", _profil_sport, $name);
	$name = preg_replace("=_waffe_=Uis", _profil_waffe, $name);
	$name = preg_replace("=_board_=Uis", _profil_board, $name);
	$name = preg_replace("=_cpu_=Uis", _profil_cpu, $name);
	$name = preg_replace("=_graka_=Uis", _profil_graka, $name);
	$name = preg_replace("=_hdd_=Uis", _profil_hdd, $name);
	$name = preg_replace("=_headset_=Uis", _profil_headset, $name);
	$name = preg_replace("=_inet_=Uis", _profil_inet, $name);
	$name = preg_replace("=_maus_=Uis", _profil_maus, $name);
	$name = preg_replace("=_mauspad_=Uis", _profil_mauspad, $name);
	$name = preg_replace("=_monitor_=Uis", _profil_monitor, $name);
	$name = preg_replace("=_ram_=Uis", _profil_ram, $name);
	$name = preg_replace("=_system_=Uis", _profil_os, $name);

  return $name;
}
//-> Checkt versch. Dinge anhand der Hostmaske eines Users
function ipcheck($what,$time = "")
{
  global $db,$userip;
    $qry = db("SELECT time,what FROM ".$db['ipcheck']."
               WHERE what = '".$what."'
               AND ip = '".$userip."'
               ORDER BY time DESC");
    $get = _fetch($qry);

    if(preg_match("#vid#", $get['what'])) return true;
    else {
      if($get['time']+$time<time())
      {
        $del = db("DELETE FROM ".$db['ipcheck']."
                   WHERE what = '".$what."'
                   AND ip = '".$userip."'
                   AND time+'".$time."'<'".time()."'");
      }

      if($get['time']+$time>time()) return true;
      else return false;
    }
}
//-> Gibt die Tageszahl eines Monats aus
function days_in_month($month, $year)
{
  return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
//-> Setzt bei einem Tag >10 eine 0 vorran (Kalender)
function cal($i)
{
  if(preg_match("=10|20|30=Uis",$i) == FALSE) $i = preg_replace("=0=", "", $i);
  if($i < 10) $tag_nr = "0".$i;
  else $tag_nr = $i;

  return $tag_nr;
}
//-> Entfernt fuehrende Nullen bei Monatsangaben
function nonum($i)
{
  if(preg_match("=10=Uis",$i) == FALSE) $i = preg_replace("=0=", "", $i);

  return $i;
}
//-> maskiert Zeilenumbrueche fuer <textarea>
function txtArea($txt)
{
  global $ENCODE;
/*
    if($ENCODE)
      $txt = str_replace("\n","<back>",$txt);
*/
  return $txt;
}
//-> Konvertiert Platzhalter in die jeweiligen Übersetzungen
function navi_name($name)
{
  $name = trim($name);
  if(preg_match("#^_(.*?)_$#Uis",$name))
  {
    $name = preg_replace("#_(.*?)_#Uis", "$1", $name);
    @eval("\$name = _".$name.";");
  }

  return $name;
}
//RSS News Feed erzeugen
function convert_feed($txt)
{
  global $charset;
  
  $txt = stripslashes($txt);
  $txt = str_replace("Ä","Ae",$txt);
  $txt = str_replace("ä","ae",$txt);
  $txt = str_replace("Ü","Ue",$txt);
  $txt = str_replace("ü","ue",$txt);
  $txt = str_replace("Ö","Oe",$txt);
  $txt = str_replace("ö","oe",$txt);
  $txt = str_replace("&Auml;","Ae",$txt);
  $txt = str_replace("&auml;","ae",$txt);
  $txt = str_replace("&Uuml;","Ue",$txt);
  $txt = str_replace("&uuml;","ue",$txt);
  $txt = str_replace("&Ouml;","Oe",$txt);
  $txt = str_replace("&ouml;","oe",$txt);
  $txt = htmlentities($txt, ENT_QUOTES, $charset);
  $txt = str_replace("&amp;","&",$txt);
  $txt = str_replace("&lt;","<",$txt);
  $txt = str_replace("&gt;",">",$txt);
  $txt = str_replace("<","<",$txt);
  $txt = str_replace(">",">",$txt);
  $txt = str_replace(""","\"",$txt);
  $txt = str_replace("&nbsp;"," ",$txt);
  $txt = str_replace("&szlig;","ss",$txt);
  $txt = preg_replace("#&(.*?);#is","",$txt);
  $txt = str_replace("&","&amp;",$txt);
  $txt = str_replace("“", "\"",$txt);
  $txt = str_replace("„", "\"",$txt);

  $txt = strip_tags($txt);

  return $txt;
}
function feed()
{
  global $db,$pagetitle,$clanname,$charset;
    $host = $_SERVER['HTTP_HOST'];
    $pfad = preg_replace("#^(.*?)\/(.*?)#Uis","$1",dirname($_SERVER['PHP_SELF']));

    $feed = '<?xml version="1.0" encoding="'.$charset.'" ?>';
    $feed .= "\r\n";
    $feed .= '<rss version="0.91">';
    $feed .= "\r\n";
    $feed .= '<channel>';
    $feed .= "\r\n";
    $feed .= '  <title>'.convert_feed($pagetitle).'</title>';
    $feed .= "\r\n";
    $feed .= '  <link>http://'.$host.'</link>';
    $feed .= "\r\n";
    $feed .= '  <description>Clannews von '.convert_feed($clanname).'</description>';
    $feed .= "\r\n";
    $feed .= '  <language>de-de</language>';
    $feed .= "\r\n";
    $feed .= '  <copyright>'.date("Y", time()).' '.convert_feed($clanname).'</copyright>';
    $feed .= "\r\n";

    $data = @fopen("../rss.xml","w+");
    @fwrite($data, $feed);

    $qry = db("SELECT * FROM ".$db['news']."
               WHERE intern = 0 AND public = 1
               ORDER BY datum DESC
               LIMIT 15");
    while($get = _fetch($qry))
    {
      $qry1 = db("SELECT nick FROM ".$db['users']."
                  WHERE id = '".$get['autor']."'");
      $get1 = _fetch($qry1);

      $feed .= '  <item>';
      $feed .= "\r\n";
      $feed .= '    <pubDate>'.date("r", $get['datum']).'</pubDate>';
      $feed .= "\r\n";
      $feed .= '    <author>'.convert_feed($get1['nick']).'</author>';
      $feed .= "\r\n";
      $feed .= '    <title>'.convert_feed($get['titel']).'</title>';
      $feed .= "\r\n";
      $feed .= '    <description>';
      $feed .= convert_feed($get['text']);
      $feed .= '    </description>';
      $feed .= "\r\n";
      $feed .= '    <link>http://'.$host.$pfad.'/news/?action=show&amp;id='.$get['id'].'</link>';
      $feed .= "\r\n";
      $feed .= '  </item>';
      $feed .= "\r\n";

      $data = @fopen("../rss.xml","w+");
      @fwrite($data, $feed);
    }

    $feed .= '</channel>';
    $feed .= "\r\n";
    $feed .= '</rss>';

    $data = @fopen("../rss.xml","w+");
    @fwrite($data, $feed);
}
//Userspezifische Informationen
function infos($checkBrowser = "")
{
  global $userip;
    if(settings("persinfo") == 1)
    {
      $data = $_SERVER['HTTP_USER_AGENT'];
      if(preg_match ("/Linux/i",$data))           $system = "Linux";
      elseif(preg_match("/SunOS/i",$data))        $system = "Sun OS";
      elseif(preg_match("/Macintosh/i",$data))    $system = "Macintosh";
      elseif(preg_match("/Mac_PowerPC/i",$data))  $system = "Macintosh";
      elseif(preg_match("/Windows 2000/i",$data)) $system = "Windows 2000";
      elseif(preg_match("/Windows XP/i",$data))   $system = "Windows XP";
      elseif(preg_match("/NT 5.2/i",$data))       $system = "Windows XP x64";
      elseif(preg_match("/NT 5.1/i",$data))       $system = "Windows XP";
      elseif(preg_match("/NT 5.0/i",$data))       $system = "Windows 2000";
      elseif(preg_match("/NT 4.0/i",$data))       $system = "Windows NT 4";
      elseif(preg_match("/NT 6.0/i",$data))       $system = "Windows Vista";
      elseif(preg_match("/NT 6.1/i",$data))       $system = "Windows 7";
      elseif(preg_match("/Windows ME/i",$data))   $system = "Windows 9x + ME";
      elseif(preg_match("/Windows 98/i",$data))   $system = "Windows 9x + ME";
      elseif(preg_match("/Windows 95/i",$data))   $system = "Windows 9x + ME";
      elseif(preg_match("/Win 9x/i",$data))       $system = "Windows 9x + ME";
      elseif(preg_match("/Win95/i",$data))        $system = "Windows 9x + ME";
      elseif(preg_match("/Win98/i",$data))        $system = "Windows 9x + ME";
      else                                        $system = _unknown_system;

      if(preg_match("/Opera/i",$data))          $browser = "Opera";
      elseif(preg_match("/Konqueror/i",$data))  $browser = "Konqueror";
      elseif(preg_match("/Firefox/i",$data))    $browser = "Firefox";
      elseif(preg_match("/MSIE 5/i",$data))     $browser = "IE 5";
      elseif(preg_match("/MSIE 6/i",$data))     $browser = "IE 6";
      elseif(preg_match("/MSIE 7/i",$data))     $browser = "IE 7";
      elseif(preg_match("/MSIE 8/i",$data))     $browser = "IE 8";
      elseif(preg_match("/Mozilla/i",$data))    $browser = "Mozilla";
      else                                      $browser = _unknown_browser;

      $res = "<script language=\"javascript\" type=\"text/javascript\">
                  doc.write(screen.width + ' x ' + screen.height)
              </script>";

      $infos = show("menu/pers.infos", array("ip" => $userip,
                                             "info_ip" => _info_ip,
                                             "host" => gethostbyaddr($userip),
                                             "info_browser" => _info_browser,
                                             "browser" => $browser,
                                             "info_res" => _info_res,
                                             "res" => $res,
                                             "info_sys" => _info_sys,
                                             "sys" => $system));
    } else {
      $infos = "";
    }

  if($checkBrowser == "true") return $browser;
  else                        return $infos;
}
// Userpic ausgeben
function userpic($userid, $width=170,$height=210)
{
  global $picformat;

    foreach($picformat as $endung)
		{
			if(file_exists(basePath."/inc/images/uploads/userpics/".$userid.".".$endung))
			{
				$pic = show(_userpic_link, array("id" => $userid,
																				 "endung" => $endung,
                                         "width" => $width,
                                         "height" => $height));
				break;
			}	else {
				$pic = show(_no_userpic, array("width" => $width,
                                       "height" => $height));
			}
		}

  return $pic;
}
// Useravatar ausgeben
function useravatar($userid, $width=100,$height=100)
{
  global $picformat;

    foreach($picformat as $endung)
		{
			if(file_exists(basePath."/inc/images/uploads/useravatare/".$userid.".".$endung))
			{
				$pic = show(_userava_link, array("id" => $userid,
																				 "endung" => $endung,
                                         "width" => $width,
                                         "height" => $height));
				break;
			}	else {
				$pic = show(_no_userava, array("width" => $width,
                                       "height" => $height));
			}
		}

  return $pic;
}
// Adminberechtigungen ueberpruefen
function admin_perms($userid)
{
  global $db,$chkMe;
  
    if(empty($userid)) return false;
    
   // no need for these admin areas
    $e = array('gb', 'shoutbox', 'editusers', 'votes', 'contact', 'joinus', 'intnews', 'forum');

   // check user permission
    $c = _fetch(db("SELECT * FROM ".$db['permissions']." WHERE user = '".intval($userid)."'"));
    if(!empty($c))
    {
      foreach($c AS $v => $k)
      {
        if($v != 'id' && $v != 'user' && $v != 'pos' && !in_array($v, $e))
        {
          if($k == 1)
          {
            return true;
            break;
          }
        }
      }
    }

   // check rank permission
    $r = _fetch(db("SELECT s1.* FROM ".$db['permissions']." AS s1 LEFT JOIN ".$db['userpos']." AS s2 ON s1.`pos` = s2.`posi`
                    WHERE s2.`user` = '".intval($userid)."' AND s2.`posi` != '0'"));
    if(!empty($r))
    {
      foreach($r AS $v => $k)
      {
        if($v != 'id' && $v != 'user' && $v != 'pos' && !in_array($v, $e))
        {
          if($k == 1)
          {
            return true;
            break;
          }
        }
      }
    }

  return ($chkMe == 4) ? true : false;
}
//-> blacklist um spider/crawler von der Besucherstatistik auszuschliessen
function isSpider()
{
  $uagent = $_SERVER['HTTP_USER_AGENT'];
  $ex = explode("\n", file_get_contents(basePath.'/inc/_spiders.txt'));
  for($i=0;$i<=count($ex)-1;$i++)
  {
    if(stristr($uagent, trim($ex[$i])))
      return true;
  }

  return false;
}
//-> filter placeholders
function pholderreplace($pholder)
{
  $search = array('@<script[^>]*?>.*?</script>@si',
                  '@<style[^>]*?>.*?</style>@siU',
                  '@<[\/\!]*?[^<>]*?>@si',
                  '@<![\s\S]*?--[ \t\n\r]*>@');
//Replace
  $pholder = preg_replace("#<script(.*?)</script>#is","",$pholder);
  $pholder = preg_replace("#<style(.*?)</style>#is","",$pholder);
  $pholder = preg_replace($search, '', $pholder);
  $pholder = str_replace(" ","",$pholder);
  $pholder = preg_replace("#[0-9]#is","",$pholder);
  $pholder = preg_replace("#&(.*?);#s","",$pholder);
  $pholder = str_replace("\r","",$pholder);
  $pholder = str_replace("\n","",$pholder);
  $pholder = preg_replace("#\](.*?)\[#is","][",$pholder);
  $pholder = str_replace("][","^",$pholder);
  $pholder = preg_replace("#^(.*?)\[#s","",$pholder);
  $pholder = preg_replace("#\](.*?)$#s","",$pholder);
  $pholder = str_replace("[","",$pholder);
  $pholder = str_replace("]","",$pholder);

  return $pholder;
}
//-> Ladezeit
function generatetime()
{
  list($usec, $sec) = explode(" ",microtime());
  return ((float)$usec + (float)$sec);
}
//-> Rechte abfragen
function getPermissions($checkID = 0, $pos = 0)
{
  global $db;

  if(!empty($checkID))
  {
    $check = empty($pos) ? 'user' : 'pos';
    $checked = array();
    $qry = db("SELECT * FROM ".$db['permissions']." WHERE `".$check."` = '".intval($checkID)."'");
    if(_rows($qry)) foreach(_fetch($qry) AS $k => $v) $checked[$k] = $v;
  }

  $permission = array();
  $qry = db("SHOW COLUMNS FROM ".$db['permissions']."");
  while($get = _fetch($qry))
  {
    if($get['Field'] != 'id' && $get['Field'] != 'user' && $get['Field'] != 'pos' && $get['Field'] != 'intforum')
    {
      @eval("\$lang = _perm_".$get['Field'].";");
      $chk = empty($checked[$get['Field']]) ? '' : ' checked="checked"';

      $permission[$lang] = '<input type="checkbox" class="checkbox" id="'.$get['Field'].'" name="perm[p_'.$get['Field'].']" value="1"'.$chk.' /><label for="'.$get['Field'].'"> '.$lang.'</label> ';
    }
  }
  natcasesort($permission);
  foreach($permission AS $perm) {
    $br = ($break % 2) ? '<br />' : ''; $break++;
    $p .= $perm.$br;
  }

  return $p;
}
//-> interne Foren-Rechte abfragen
function getBoardPermissions($checkID = 0, $pos = 0)
{
  global $db, $dir;

  $qry = db("SELECT id,name FROM ".$db['f_kats']." WHERE intern = '1' ORDER BY `kid` ASC");
  while($get = _fetch($qry))
  {
    unset($kats, $fkats, $break);

    $kats = (empty($katbreak) ? '' : '<div style="clear:both">&nbsp;</div>').'<table class="hperc" cellspacing="1"><tr><td class="contentMainTop"><b>'.re($get["name"]).'</b></td></tr></table>';
    $katbreak = 1;

    $qry2 = db("SELECT kattopic,id FROM ".$db['f_skats']." WHERE `sid` = '".$get['id']."' ORDER BY `kattopic` ASC");
    while($get2 = _fetch($qry2))
    {
      $br = ($break % 2) ? '<br />' : ''; $break++;
      $check =  db("SELECT * FROM ".$db['f_access']." WHERE `".(empty($pos) ? 'user' : 'pos')."` = '".intval($checkID)."' AND ".(empty($pos) ? 'user' : 'pos')." != '0'
                    AND `forum` = '".$get2['id']."'");
      $chk = _rows($check) ? ' checked="checked"' : '';

      $fkats .= '<input type="checkbox" class="checkbox" id="board_'.$get2['id'].'" name="board['.$get2['get2'].']" value="'.$get2['id'].'"'.$chk.' /><label for="board_'.$get2['id'].'"> '.re($get2['kattopic']).'</label> '.$br;
    }
    $i_forum .= $kats.$fkats;
  }

  return $i_forum;
}
//-> Neue Funktionen einbinden, sofern vorhanden
if($f = get_files(basePath.'/inc/additional-functions/'))
{
  foreach($f AS $func)
  {
    $ext = explode('.', strtolower($func));
    $ext = $ext[count($ext) - 1];
    if($ext == 'php')
    {
      include(basePath.'/inc/additional-functions/'.$func);
    }
  }
}
//-> Neue Languages einbinden, sofern vorhanden
$addonlang = (!empty($_COOKIE[$prev.'language'])) ? $_COOKIE[$prev.'language'] : $settings["language"];
if($l = get_files(basePath.'/inc/additional-languages/'.$addonlang.'/'))
{
	foreach($l AS $languages)
	{
		$extl = explode('.', strtolower($languages));
		$extl = $extl[count($extl) - 1];
		if($extl == 'php')
		{
			include(basePath.'/inc/additional-languages/'.$addonlang.'/'.$languages);
		}
	}
}
//-> Navigation einbinden
include_once(basePath.'/inc/menu-functions/navi.php');
//-> Ausgabe des Indextemplates
function page($index,$title,$where,$time,$wysiwyg='')
{
  global $db,$userid,$userip,$tmpdir,$secureLogin,$chkMe,$charset;
  global $u_b1,$u_b2,$designpath,$maxwidth,$language,$cp_color;
// user gebannt? Logge aus!
    if($chkMe == 'banned') header("Location: ../user/?action=logout");
//  JS-Dateine einbinden
    $lng = ($language=='deutsch')?'de':'en';
    $edr = ($wysiwyg=='_word')?'advanced':'normal';
    $lcolor = ($cp_color==1)?'lcolor=true;':'';

    $java_vars = '<script language="javascript" type="text/javascript">
    <!--
      var maxW = '.$maxwidth.',lng = \''.$lng.'\',dzcp_editor = \''.$edr.'\';'.$lcolor.'
    //-->
    </script>
    <script language="javascript" type="text/javascript" src="'.$designpath.'/_js/wysiwyg'.$wysiwyg.'.js"></script>';

  global $db;
  $qry = db("SELECT wmoduswelcome,wmodusgrund FROM ".$db['settings']."
             ORDER BY RAND()");
  if($get = _fetch($qry))
	
    if(settings("wmodus") && $chkMe != 4)
    {
      if($secureLogin == 1)
        $secure = show("menu/secure", array("help" => _login_secure_help,
                                            "security" => _register_confirm));

      $login = show("errors/wmodus_login", array("what" => _login_login,
                                                 "secure" => $secure,
                                                 "signup" => _login_signup,
                                                 "permanent" => _login_permanent,
                                                 "lostpwd" => _login_lostpwd));

      echo show("errors/wmodus", array("wmodus" => _wartungsmodus,
                                       "head" => _wartungsmodus_head,
									   "wmoduswelcome" => bbcode($get['wmoduswelcome']),
									   "wmodusgrund" => bbcode($get['wmodusgrund']),									   
                                       "tmpdir" => $tmpdir,
                                       "java_vars" => $java_vars,
                                       "dir" => $designpath,
                                       "title" => re(strip_tags($title)),
                                       "login" => $login));
   } else {
    updateCounter();
    update_maxonline();
    
//check permissions
    if($chkMe == "unlogged") include_once(basePath.'/inc/menu-functions/login.php');
    else {
      $check_msg = check_msg();
      set_lastvisit();
      
      db("UPDATE ".$db['users']."
          SET `time`     = '".((int)time())."',
              `whereami` = '".up($where)."'
          WHERE id = '".intval($userid)."'");
    }
    
//init templateswitch
    $tmps = get_files('../inc/_templates_/');
    for($i=0; $i<count($tmps); $i++)
    {
      if($gets['tmpdir'] == $tmps[$i]) $selt = "selected=\"selected\"";
      else $selt = "";

      $tmpldir .= show(_select_field, array("value" => "../user/?action=switch&amp;set=".$tmps[$i],
                                            "what" => $tmps[$i],
                                            "sel" => $selt));
    }
//misc vars
    $template_switch = show("menu/tmp_switch", array("templates" => $tmpldir));
    $clanname = re(settings("clanname"));
	$clanslogan = re(settings("pagetitel"));
    $time = show(_generated_time, array("time" => $time));
    $headtitle = show(_index_headtitle, array("clanname" => $clanname));
    $rss = $clanname;
    $dir = $designpath;
    $title = re(strip_tags($title));

    $index = empty($index) ? '' : (empty($check_msg) ? '' : $check_msg).'<table class="mainContent" cellspacing="1" style="margin-top:0">'.$index.'</table>';
    
//-> Sort & filter placeholders
//default placeholders
    $arr = array("idir" => '../inc/images/admin',
                 "dir" => $designpath);
//check if placeholders are given
    $pholder = file_get_contents($designpath."/index_news.html");
//filter placeholders

    $blArr = array("[title]","[copyright]","[java_vars]","[login]", "[clanname]", "[clanslogan]", "[template_switch]","[headtitle]","[index]", "[time]","[rss]","[dir]","[charset]");
    for($i=0;$i<=count($blArr)-1;$i++)
    {
      if(preg_match("#".$blArr[$i]."#",$pholder))
        $pholdervars .= $blArr[$i];
    }
    for($i=0;$i<=count($blArr)-1;$i++)
      $pholder = str_replace($blArr[$i],"",$pholder);

    $pholder = pholderreplace($pholder);
    $pholdervars = pholderreplace($pholdervars);
//put placeholders in array
    $pholder = explode("^",$pholder);
    for($i=0;$i<=count($pholder)-1;$i++) {
    
    
      if(strstr($pholder[$i], 'nav_')) eval("\$arr[".$pholder[$i]."] = navi('".$pholder[$i]."');");
      else {
        if(@file_exists(basePath.'/inc/menu-functions/'.$pholder[$i].'.php'))  include_once(basePath.'/inc/menu-functions/'.$pholder[$i].'.php');
  			@eval("if(function_exists('".$pholder[$i]."')){\$arr[".$pholder[$i]."] = ".$pholder[$i]."();}");
      }
		}
    $pholdervars = explode("^",$pholdervars);
    for($i=0;$i<=count($pholdervars)-1;$i++) {
      eval("\$arr[".$pholdervars[$i]."] = \$".$pholdervars[$i].";");
    }

//index output
    echo show("index_news", $arr);
  }
}
?>

kann mir ma einer helfen bitte is wichtig

LG
 
Ist das dein Ernst? Ich hoffe nicht.
Lies zuerst mal die 'Regeln fürs PHP Board - bitte komplett durchlesen!'

a) Klare verständliche Betreffe

Gutes Beispiel:
Fehler: Header wurden bereits gesendet

Schlechtes Beispiel:
mannnnnnn, brauch hilfe

b) Liefere ausreichend Informationen

gutes Beispiel:
Hallo, ich bekomme eine Fehlermeldung mit folgenden Wortlaut: .... in zeile xx
Hier der betreffende Code (5 Zeilen vor der Fehlerzeile und 5 Zeilen nach der Fehlerzeile reichen im Normalfall aus)

schlechtes Beispiel:
mysql abfrage funtzt nicht, wieso?

Auch schlecht:
Hallo, ich habe einen Fehler hier der Code der index.php
folgend 200 Zeilen PHP/HTML-Code

Netiquette
14. Erstelle aussagekräftige Betreff-Zeilen für Deine eigenen Beiträge. Mit nicht aussagekräftigen Betreff-Zeilen wie z.B. "Hilfe, komme nicht weiter" oder "Photoshop braucht Hilfe!" belegst Du nur, dass Du die Netiquette unseres Forums nicht gelesen oder verstanden hast, oder es Dir an der notwendigen Reife für ein solches Informationsmedium fehlt. Beiträge mit mangelhaften Betreff-Zeilen werden ohne Vorwarnung gelöscht und der Account (ggf. erst bei einer Wiederholungstat) unbefristet gesperrt.


Oder erwartest du vollem Ernst, dass ich hier nun 2000 Zeilen durchzählen um herauszufinden was dort ev. falsch sein kann!

Kürze den Code und liefere einen passenden Titel (ich kann dann den für dich einsetzen)

Ist nicht böse gemeint.....
 
Zurück