$ppp) addnav("Nächste Seite","logs.php?op=mail&in=$_GET[in]&limit=".($page+1).""); output("",true); for ($i=0;$i",true); output("",true); } output("
`bDatum`b`bAbsender`b`bBetreff`b
$row[sent]$row[absender]$row[subject]
$row[body]

",true); addnav("Zurück","logs.php?op=mail"); }else if ($_GET[out]){ $ppp=25; // Player Per Page to display if (!$_GET[limit]){ $page=0; }else{ $page=(int)$_GET[limit]; addnav("Vorherige Seite","logs.php?op=mail&out=$_GET[in]&limit=".($page-1).""); } $limit="".($page*$ppp).",".($ppp+1); output("`qYe Olde Mail (".($_GET[limit]*$ppp)."-".($_GET[limit]*$ppp+$ppp).") -- Alle Mails: Outbox $_GET[out] `0`n`n"); $sql = "SELECT mail.*,accounts.login AS empfaenger FROM mail LEFT JOIN accounts ON accounts.acctid=mail.msgto WHERE msgfrom=$_GET[out] ORDER BY sent DESC LIMIT $limit"; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result)>$ppp) addnav("Nächste Seite","logs.php?op=mail&out=$_GET[out]&limit=".($page+1).""); output("",true); for ($i=0;$i",true); output("",true); } output("
`bDatum`b`bEmpfänger`b`bBetreff`b
$row[sent]$row[empfaenger]$row[subject]
$row[body]

",true); addnav("Zurück","logs.php?op=mail"); }else{ if (!$_GET[subop]) $_GET[subop]="system"; $ppp=25; // Player Per Page to display if (!$_GET[limit]){ $page=0; }else{ $page=(int)$_GET[limit]; addnav("Vorherige Seite","logs.php?op=mail&limit=".($page-1)."&subop=$_GET[subop]&order=$sort"); } $limit="".($page*$ppp).",".($ppp+1); $sort="sent"; if ($_GET[order]) $sort=$_GET[order]; output("`qYe Olde Mail (".($_GET[limit]*$ppp)."-".($_GET[limit]*$ppp+$ppp).") -- ".($_GET[subop]=="all"?"Private Mails":"Systemnachrichten")."`0`n`n"); //addnav($_GET[subop]=="system"?"Normale Nachrichten":"Systemnachrichten","logs.php?op=mail&subop=".($_GET[subop]=="system"?"all":"system")."&order=$_GET[order]&limit=$_GET[limit]"); // ist möglicherweise nicht erlaubt $sql = "SELECT mail.*,accounts.login AS empfaenger FROM mail LEFT JOIN accounts ON accounts.acctid=mail.msgto WHERE ".($_GET[subop]=="system"?"msgfrom=0":"msgfrom<>0")." AND msgto<>0 ORDER BY $sort DESC LIMIT $limit"; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result)>$ppp) addnav("Nächste Seite","logs.php?op=mail&limit=".($page+1)."&order=$sort&subop=$_GET[subop]"); output("",true); addnav("","logs.php?op=mail&limit=$page&order=sent&subop=$_GET[subop]"); addnav("","logs.php?op=mail&limit=$page&order=msgto&subop=$_GET[subop]"); addnav("","logs.php?op=mail&limit=$page&order=msgfrom&subop=$_GET[subop]"); for ($i=0;$i",true); output("",true); addnav("","logs.php?op=mail&in=$row[msgto]"); addnav("","logs.php?op=mail&out=$row2[acctid]"); } output("
`bDatum`b`bAbsender`b`bEmpfänger`b`bBetreff`b
$row[sent]$row2[login]$row[empfaenger]$row[subject]
$row[body]

",true); addnav("Zurück","logs.php"); output("`n`iUm das Postfach eines Spielers zu sehen, auf seinen Namen unter \"Empfänger\" klicken.`nUm zu sehen, was ein Spieler gesendet hat, auf seinen Namen unter \"Absender\" klicken.`i"); } }else if ($_GET[op]=="faillog"){ if ($_GET[id]){ $ppp=25; // Player Per Page to display if (!$_GET[limit]){ $page=0; }else{ $page=(int)$_GET[limit]; addnav("Vorherige Seite","logs.php?op=faillog&id=$_GET[id]&limit=".($page-1)."&order=$sort&pw=$_GET[pw]"); } $limit="".($page*$ppp).",".($ppp+1); $sort="date"; if ($_GET[order]) $sort=$_GET[order]; $sql = "SELECT * FROM faillog WHERE acctid=$_GET[id] ORDER BY $sort DESC LIMIT $limit"; $result = db_query($sql) or die(db_error(LINK)); output("Fehlgeschlagene Logins (".($_GET[limit]*$ppp)."-".($_GET[limit]*$ppp+$ppp).") für ID $_GET[id]`n`n"); if (db_num_rows($result)>$ppp) addnav("Nächste Seite","logs.php?op=faillog&id=$_GET[id]&limit=".($page+1)."&order=$sort&pw=$_GET[pw]"); output("".($_GET[pw]?"":"")."",true); addnav("","logs.php?op=faillog&id=$_GET[id]&limit=$page&order=date"); addnav("","logs.php?op=faillog&id=$_GET[id]&limit=$page&order=ip"); for ($i=0;$i=3) $row[post]=unserialize($row[post]); output("".($_GET[pw]?"":"")."",true); } addnav("Zurück","logs.php?op=faillog&order=$_GET[order]"); output("
`bDatum`b`bIP`b`bfalsches PW`b
$row[date]$row[ip]".$row[post][password]."
",true); if ($session[user][superuser]>=3) addnav("PWs ".($_GET[pw]?"ausblenden":"einblenden")."","logs.php?op=faillog&id=$_GET[id]".($_GET[pw]?"":"&pw=true")."&order=$_GET[order]&limit=$_GET[limit]"); if ($_GET[pw] && $i>=3) output("`n`iDie Anzeige der falsch eingegebenen Passwörter dient dazu, um festzustellen, wo Passwörter geraten werden und wo nur ein Tippfehler vorliegt.`i"); }else if ($_GET[ip]){ $ppp=25; // Player Per Page to display if (!$_GET[limit]){ $page=0; }else{ $page=(int)$_GET[limit]; addnav("Vorherige Seite","logs.php?op=faillog&ip=$_GET[ip]&limit=".($page-1)."&pw=$_GET[pw]"); } $limit="".($page*$ppp).",".($ppp+1); $sql = "SELECT faillog.*,accounts.name AS absender FROM faillog LEFT JOIN accounts ON accounts.acctid=faillog.acctid WHERE ip='$_GET[ip]' ORDER BY date DESC LIMIT $limit"; $result = db_query($sql) or die(db_error(LINK)); output("Fehlgeschlagene Logins (".($_GET[limit]*$ppp)."-".($_GET[limit]*$ppp+$ppp).") von IP $_GET[ip]`n`n"); if (db_num_rows($result)>$ppp) addnav("Nächste Seite","logs.php?op=faillog&ip=$_GET[ip]&limit=".($page+1)."&pw=$_GET[pw]"); output("".($_GET[pw]?"":"")."",true); for ($i=0;$i=3) $row[post]=unserialize($row[post]); output("".($_GET[pw]?"":"")."",true); } addnav("Zurück","logs.php?op=faillog&order=$_GET[order]"); output("
`bDatum`b`bName`b`bfalsches PW`b
$row[date]$row[absender]".$row[post][password]."
",true); if ($session[user][superuser]>=3) addnav("PWs ".($_GET[pw]?"ausblenden":"einblenden")."","logs.php?op=faillog&ip=$_GET[ip]".($_GET[pw]?"":"&pw=true")."&order=$_GET[order]&limit=$_GET[limit]"); if ($_GET[pw] && $i>=3) output("`n`iDie Anzeige der falsch eingegebenen Passwörter dient dazu, um festzustellen, wo Passwörter geraten werden und wo nur ein Tippfehler vorliegt.`i"); }else{ $ppp=25; // Player Per Page to display output("Fehlgeschlagene Logins (".($_GET[limit]*$ppp)."-".($_GET[limit]*$ppp+$ppp).")`n`iSpielername oder IP anklicken, um alle Fehlversuche anzuzeigen.`i`n`n"); if (!$_GET[limit]){ $page=0; }else{ $page=(int)$_GET[limit]; addnav("Vorherige Seite","logs.php?op=faillog&limit=".($page-1)."&order=$sort"); } $limit="".($page*$ppp).",".($ppp+1); $sort="date"; if ($_GET[order]) $sort=$_GET[order]; $sql = "SELECT faillog.*,accounts.name AS absender FROM faillog LEFT JOIN accounts ON accounts.acctid=faillog.acctid WHERE 1 ORDER BY $sort DESC LIMIT $limit"; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result)>$ppp) addnav("Nächste Seite","logs.php?op=faillog&limit=".($page+1)."&order=$sort"); output("",true); addnav("","logs.php?op=faillog&limit=$page&order=date"); addnav("","logs.php?op=faillog&limit=$page&order=acctid"); addnav("","logs.php?op=faillog&limit=$page&order=ip"); for ($i=0;$i",true); addnav("","logs.php?op=faillog&id=$row[acctid]&order=$sort"); addnav("","logs.php?op=faillog&ip=$row[ip]&order=$sort"); } output("
`bDatum`b`bAcctid`b`bName`b`bIP`b
$row[date]$row[acctid]$row[absender]$row[ip]
",true); addnav("Zurück","logs.php"); } } elseif ($_GET['op']=='multi') { if (!empty($_POST['setupban']) && count($_POST['userid'])>0) { output("
",true); if ($_POST['setupban']=='IPs bannen') { $sql = 'SELECT lastip FROM accounts WHERE acctid IN ("'.implode('","',$_POST['userid']).'") GROUP BY lastip'; $result = db_query($sql); $ips = array(); while ($row = db_fetch_assoc($result)) $ips[] = $row['lastip']; output('Sperre für die IP '.implode(', ',$ips).'`n'); output('',true); } else { $sql = 'SELECT uniqueid FROM accounts WHERE acctid IN ("'.implode('","',$_POST['userid']).'") GROUP BY uniqueid'; $result = db_query($sql); $ids = array(); while ($row = db_fetch_assoc($result)) $ids[] = $row['uniqueid']; output('Sperre für die ID '.implode(', ',$ids).'`n'); output('',true); } output("Dauer: days (0 for permanent)`n",true); output("Grund für die Verbannung: `n",true); output("
",true); addnav("","logs.php?op=multi&act=saveban&searchby=$_GET[searchby]"); } elseif ($_GET['act']=='saveban') { if ($_POST['type']=='ip') $vals = explode('|',$_POST['ip']); else $vals = explode('|',$_POST['id']); foreach ($vals AS $this) { $sql = "INSERT INTO bans ("; if ($_POST[type]=="ip"){ $sql.="ipfilter"; }else{ $sql.="uniqueid"; } $sql.=",banexpire,banreason) VALUES ("; $sql.="\"$this\""; $sql.=",\"".((int)$_POST[duration]==0?"0000-00-00":date("Y-m-d",strtotime("+$_POST[duration] days")))."\","; $sql.="\"$_POST[reason]\")"; if ($_POST[type]=="ip"){ if (substr($_SERVER['REMOTE_ADDR'],0,strlen($this)) == $this){ $sql = ""; output("Du willst dich doch nicht wirklich selbst verbannen, oder?? Das ist deine eigene IP-Adresse!"); } }else{ if ($_COOKIE[lgi]==$this){ $sql = ""; output("Du willst dich doch nicht wirklich selbst verbannen, oder?? Das ist deine eigene ID!"); } } if ($sql!=""){ db_query($sql) or die(db_error(LINK)); output(db_affected_rows()." Bann eingetragen.`n`n"); output(db_error(LINK)); } } output('`n'); } elseif (!empty($_POST['deleteuser']) && count($_POST['userid'])>0) { $sql = "SELECT name FROM accounts WHERE acctid IN (".implode(',',$_POST['userid']).")"; $result = db_query($sql) or die(sql_error($sql)); $delnames = array(); while ($row = db_fetch_assoc($result)) { $delnames[] = '`$'.$row['name'].'`0'; } output('User '.implode(', ',$delnames).' aus folgendem Grund löschen: '); output("
",true); output('Begründung auswählen: '); output('',true); output(' `n`ioder`i eingeben: '); output(' ',true); output('',true); output('Begründung speichern`n'); output('',true); output('',true); output('
',true); addnav('','logs.php?op=multi&act=dodeleteuser&searchby='.$_GET['searchby'].'&userid='.implode(',',$_POST['userid'])); } elseif ($_GET['act']=='dodeleteuser') { $userid = explode(',',$_GET['userid']); foreach ($userid AS $this) { deleteuser($this,$_POST['stdreason'],$_POST['reason'],$_POST['savereason']); } output('`n'); } else output('`n'); $in_ip = $in_id = ''; if ($_GET['searchby']!='id') { $sql = 'SELECT lastip FROM accounts WHERE lastip!="" GROUP BY lastip HAVING COUNT(*) > 1'; $result = db_query($sql) or die(db_error(LINK)); while ($row = db_fetch_assoc($result)) { $in_ip .= ',"'.$row['lastip'].'"'; } } if ($_GET['searchby']!='ip') { $sql = 'SELECT uniqueid FROM accounts WHERE uniqueid!="" GROUP BY uniqueid HAVING COUNT(*) > 1'; $result = db_query($sql) or die(db_error(LINK)); while ($row = db_fetch_assoc($result)) { $in_id .= ',"'.$row['uniqueid'].'"'; } } $ip = $id = $users = array(); $sql = 'SELECT acctid,name,lastip,uniqueid,dragonkills,level FROM accounts WHERE (lastip IN (-1'.$in_ip.') OR uniqueid IN (-1'.$in_id.')) AND locked="0" ORDER BY dragonkills ASC, level ASC'; $result = db_query($sql) or die(db_error(LINK)); while ($row = db_fetch_assoc($result)) { if ((!isset($id[$row['uniqueid']]) || $_GET['searchby']=='ip') && (!isset($ip[$row['lastip']]) || $_GET['searchby']=='id')) { if ($_GET['searchby']!='id') $ip[$row['lastip']] = count($users); if ($_GET['searchby']!='ip') $id[$row['uniqueid']] = count($users); $users[] = array($row); } elseif (isset($id[$row['uniqueid']])) { $ip[$row['lastip']] = $id[$row['uniqueid']]; $users[$id[$row['uniqueid']]][] = $row; } else { $id[$row['uniqueid']] = $ip[$row['lastip']]; $users[$ip[$row['lastip']]][] = $row; } } output('`n`bMultiaccounts`b`nNaaa, wer spielt denn hier noch wen?`n`n'); output('Multiaccounts suchen nach: '); if ($_GET['searchby']!='ip') { output('IP ',true); addnav('','logs.php?op=multi&searchby=ip'); } else output('`&`bIP`b`0 '); if ($_GET['searchby']!='id') { output('ID ',true); addnav('','logs.php?op=multi&searchby=id'); } else output('`&`bID`b`0 '); if (!empty($_GET['searchby'])) { output('Beidem ',true); addnav('','logs.php?op=multi&searchby='); } else output('`&`bBeidem`b`0 '); output(''); } output('',true); addnav('','logs.php?op=multi&searchby='.$_GET['searchby']); output("
',true); foreach ($users AS $list) { if (count($list)<3) continue; $tmpstr = ''; $ips = $ids = $accts = array(); foreach ($list AS $this) { $tmpstr .= ('
'.$this['name'].' '.$this['lastip'].' '.$this['uniqueid'].' '.$this['dragonkills'].' '.$this['level'].'
",true); output($tmpstr,true); output('',true); output('
  `bName`b `bIP`b `bID`b `bDK`b `bLevel`b
`n`n',true); output('',true); } output('',true); addnav('Aktualisieren','logs.php?op=multi&searchby='.$_GET['searchby']); addnav('Zurück','logs.php'); }else{ output("Die 5 letzten fehlgeschlagenen Logins:`n`n"); $sql = "SELECT faillog.*,accounts.name AS absender FROM faillog LEFT JOIN accounts ON accounts.acctid=faillog.acctid WHERE 1 ORDER BY date DESC LIMIT 5"; $result = db_query($sql) or die(db_error(LINK)); output("",true); for ($i=0;$i",true); } output("
`bDatum`b`bAcctid`b`bName`b`bIP`b
$row[date]$row[acctid]$row[absender]$row[ip]
`n`nDie 5 letzten Systemmails:`n`n",true); $sql = "SELECT mail.*,accounts.name AS empfaenger FROM mail LEFT JOIN accounts ON accounts.acctid=mail.msgto WHERE msgfrom=0 ORDER BY sent DESC LIMIT 5"; $result = db_query($sql) or die(db_error(LINK)); output("",true); for ($i=0;$i",true); } output("
`bDatum`b`bEmpfänger`b`bBetreff`b
$row[sent]$row[empfaenger]$row[subject]
`n",true); addnav("Faillog","logs.php?op=faillog"); addnav("Usermails","logs.php?op=mail"); addnav("Multiaccounts","logs.php?op=multi"); addnav("Aktualisieren","logs.php"); } addnav("Zurück zur Grotte","superuser.php"); addnav("Zurück zum Weltlichen","village.php"); output("`n
`)2004 by anpera & Chaosmaker
",true); page_footer(); ?>