Quellcodeviewer der Dragonslayer-Edition
Quellcodeviewer der Dragonslayer-Edition : 0.9.7+jt ext (GER)


Anmerkung: Dies ist nur ein Auszug aus dem Source. Um das jeweils aktuelle, vollständige Release zu erhalten, ist eine Anfrage mit gültiger Email-Adresse erforderlich. Ebenso sollte darin die Serveradresse bzw. sonstiger Verwendungszweck aufgeführt sein. Was wir uns unbedingt verbitten, ist Diebstahl unserer Arbeit ohne Nennung des Copyrights.

Falls beim Lesen des Source ein Bug entdeckt werden sollte, bitten wir um sofortige Meldung per Anfrage!


./user.php

zurück

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
<?php

// 15082004

require_once 'common.php';
isnewday(3);

if (
$_GET['op']=='search')
{
    
$sql "SELECT acctid FROM accounts WHERE ";
    
$where="
    login LIKE '%
{$_POST['q']}%' OR 
    acctid LIKE '%
{$_POST['q']}%' OR 
    name LIKE '%
{$_POST['q']}%' OR 
    emailaddress LIKE '%
{$_POST['q']}%' OR 
    lastip LIKE '%
{$_POST['q']}%' OR 
    uniqueid LIKE '%
{$_POST['q']}%' OR 
    gentimecount LIKE '%
{$_POST['q']}%' OR 
    level LIKE '%
{$_POST['q']}%'";
    
    
$result db_query($sql.$where);
    
    if (
db_num_rows($result)<=0)
    {
        
output("`\$Keine Ergebnisse gefunden`0");
        
        
$_GET[op]="";
        
$where="";
    }

    elseif (
db_num_rows($result)>100)
    {
        
output("`\$Zu viele Ergebnisse gefunden. Bitte Suche einengen.`0");

        
$_GET['op']="";
        
$where="";
    }

    elseif (
db_num_rows($result)==1)
    {
        
//$row = db_fetch_assoc($result);
        //redirect("user.php?op=edit&userid=$row[acctid]");
        
$_GET['op']='';
        
$_GET['page']=0;
    }

    else
    {
        
$_GET['op']='';
        
$_GET['page']=0;
    }
}

page_header('User Editor');

output('<form action="user.php?op=search" method="POST">Suche in allen Feldern: <input name="q" id="q"><input type="submit" class="button"></form>',true);
output('<script language="JavaScript">document.getElementById("q").focus();</script>',true);

addnav('','user.php?op=search');
    
addnav('Zurück...');
addnav('G?... in die Grotte','superuser.php');
addnav('D?... nach Dreythal','village.php');

addnav('Verbannung...');
addnav('a?... aussprechen','user.php?op=setupban');
addnav('z?... anzeigen','user.php?op=removeban');

$sql "SELECT count(acctid) AS count FROM accounts";
$result db_query($sql);
$row db_fetch_assoc($result);
$page=0;

addnav('Zeige Seite...');

while (
$row[count]>0)
{
    
$page++;
    
    
addnav('... '.$page.'','user.php?page='.($page-1).'&sort='.$_GET[sort].'');
    
$row[count]-=100;
}

$mounts=",0,Keins";
$sql "SELECT mountid,mountname,mountcategory FROM mounts ORDER BY mountcategory";
$result db_query($sql);

while (
$row db_fetch_assoc($result))
{
$mounts.=",{$row['mountid']},{$row['mountcategory']}{$row['mountname']}";}

$userinfo = array(
    
'Account Info,title',
    
'acctid'=>'User ID,viewonly',
    
'login'=>'Login',
    
'newpassword'=>'Neues Passwort',
    
'emailaddress'=>'Email Adresse',
    
'locked'=>'Account gesperrt,bool',
    
'banoverride'=>'Verbannungen übergehen,bool',
    
'superuser'=>'Superuser,enum,0,Bürger,1,RP-Wächter,2,Schriftenhüter,3,Schmied,4,Stadtwache,5,NPC,6,Volladmin',

    
'User Infos,title',
    
'name'=>'Display Name',
    
'title'=>'Titel (muss auch in Display Name)',
    
'ctitle'=>'Eigener Titel (muss auch in Display Name)',
    
'race'=>'Rasse,enum,1,Elf,2,Hochelf,3,Dunkelelf,4,Ork,5,Gnom,8,Kobold,9,Zwerg,10,Troll,11,Halbling,12,Echse,15,Werwolf,18,Mensch,19,Halbdämon,20,Dämon,22,Feline,0,Unbekannt,50,Hoverschaf',
    
'volk'=>'Blutlinie,enum,1,Blutfalke,2,Dornenfuchs,3,Silberwolf,4,Unbekannt',
    
'sex'=>'Geschlecht,enum,0,Männlich,1,Weiblich',
// we can't change this this way or their stats will be wrong.
//    'race'=>'Race,enum,0,Unknown,1,Troll,2,Elf,3,Human,4,Dwarf,5,Echse',
    
'age'=>'Tage seit Level 1,int',
    
'dragonkills'=>'Herr-der-Stille-Kills,int',
    
'dragonage'=>'Alter beim letzten HdSK,int',
    
'bestdragonage'=>'Jüngstes Alter bei einem HdSK,int',
    
'bio'=>'Bio,textarea,50,10',

    
'Werte,title',
    
'level'=>'Level,int',
    
'experience'=>'Erfahrung,int',
    
'hitpoints'=>'Lebenspunkte (aktuell),int',
    
'maxhitpoints'=>'Maximale Lebenspunkte,int',
    
'turns'=>'Runden übrig,int',
    
'playerfights'=>'Spielerkämpfe übrig,int',
    
'attack'=>'Angriffswert (inkl. Waffenschaden),int',
    
'defence'=>'Verteidigung (inkl. Rüstung),int',
    
'spirits'=>'Stimmung (nur Anzeige),enum,-2,Sehr schlecht,-1,Schlecht,0,Normal,1,Gut,2,Sehr gut',
    
'resurrections'=>'Auferstehungen,int',
    
'alive'=>'Lebendig,int',
    
'reputation'=>'Ansehen (-50 - +50),int',

    
'Besondere Fähigkeiten,title',
    
'specialty'=>'Fähigkeit,enum,0,ohne,1,Dunkle Kunst,2,Mystische Kräfte,3,Diebeskünste,4,Feuerkünste,5,Druidenzauber,6,Luftmagie',
    
'darkarts'=>'`lStufe in: `tDu`rnk`qle K`run`tst`0,int',
    
'darkartuses'=>'`pheute übrig in `tDu`rnk`qle K`run`tst`0`0,int',
    
'magic'=>'`lStufe in: `kMy`jst`gis`fche `gKr`jäf`kte`0,int',
    
'magicuses'=>'`pheute übrig in `kMy`jst`gis`fche `gKr`jäf`kte`0,int',
    
'thievery'=>'`lStufe in: `yDi`$eb`%eskü`$ns`yte`0,int',
    
'thieveryuses'=>'`pheute übrig in `yDi`$eb`%eskü`$ns`yte`0,int',
    
'fire'=>'`lStufe in: `%F`$e`yu`xe`!rkü`xn`ys`$t`%e`0,int',
    
'fireuses'=>'`pheute übrig in `%F`$e`yu`xe`!rkü`xn`ys`$t`%e`0,int',
    
'druid'=>'`lStufe in: `.D`@r`6u`7i`8d`9enz`8a`7u`6b`@e`.r`0,int',
    
'druiduses'=>'`pheute übrig in `.D`@r`6u`7i`8d`9enz`8a`7u`6b`@e`.r`0,int',
    
'luft'=>'`lStufe in: `lL`-uftmag`-i`le`0,int',
    
'luftuses'=>'`pheute übrig in `lL`-uftmag`-i`le`0,int',

    
'Grabkämpfe,title',
    
'deathpower'=>'Gefallen bei Ramius,int',
    
'gravefights'=>'Grabkämpfe übrig,int',
    
'soulpoints'=>'Seelenpunkte (HP im Tod),int',

    
'Besitztum / Ausstattung,title',
    
'gems'=>'`1Edelsteine`0,int',
    
'gold'=>'`%Bargold,int',
    
'goldinbank'=>'`%Gold auf der Bank,int',
    
'transferredtoday'=>'Anzahl Transfers heute,int',
    
'amountouttoday'=>'`%heute insgesamt an andere überwiesenes Gold,int',
    
'weapon'=>'Name der Waffe',
    
'weapondmg'=>'Waffenschaden,int',
    
'weaponvalue'=>'Kaufwert der Waffe,int',
    
'armor'=>'Name der Rüstung',
    
'armordef'=>'Verteidigungswert,int',
    
'armorvalue'=>'Kaufwert der Rüstung,int',

    
'Sonderinfos,title',
    
'house'=>'Haus-ID,int',
    
'housekey'=>'Hausschlüssel?,int',
    
'marriedto'=>'Partner-ID (4294967295 = Violet/Seth),int',
    
'charisma'=>'Flirts (4294967295 = verheiratet mit Partner),int',
    
'seenlover'=>'Geflirtet,bool',
    
'seenbard'=>'Barden gehört,bool',
    
'charm'=>'Charme,int',
    
'seendragon'=>'Herrn der Stille heute gesucht,bool',
    
'rport'=>'Hat RP Ort erstellt,bool',
    
'seenmaster'=>'Meister befragt,bool',
    
'usedouthouse'=>'Plumpsklo besucht,bool',
    
'fedmount'=>'Tier gefüttert,bool',
    
'gotfreeale'=>'Frei-Ale (MSB: getrunken - LSB: spendiert),int',
    
'hashorse'=>'Tier,enum$mounts',
    
'boughtroomtoday'=>'Zimmer für heute bezahlt,bool',
    
'drunkenness'=>'Betrunken (0-100),int',
    
'prison'=>'In Haft?,enum,0,nein,1,ja',
    
'einzelhaft'=>'In Einzelhaft?,enum,0,nein,1,ja',
    
'avatar'=>'Avatar:',

    
'Weitere Infos,title',
    
'emote'=>'Darf User Landschaftsemotes einsetzen? Ja; darf er?,bool',
    
'beta'=>'Nimmt am Betatest teil,viewonly',
    
'slainby'=>'Gekillt von Spieler,viewonly',
    
'laston'=>'Zuletzt Online,viewonly',
    
'lasthit'=>'Letzter neuer Tag,viewonly',
    
'lastmotd'=>'Datum der letzten MOTD,viewonly',
    
'lastip'=>'Letzte IP,viewonly',
    
'uniqueid'=>'Unique ID,viewonly',
    
'gentime'=>'Summe der Seitenerzeugungszeiten,viewonly',
    
'gentimecount'=>'Seitentreffer,viewonly',
    
'allowednavs'=>'Zulässige Navigation,viewonly',
    
'dragonpoints'=>'Eingesetzte Kampfpunkte,viewonly',
    
'bufflist'=>'Spruchliste,viewonly',
    
'prefs'=>'Einstellungen,viewonly',
    
'lastwebvote'=>'Zuletzt bei Top Wep Games gewählt,viewonly',
    
'donationconfig'=>'Spendenkäufe,viewonly'
    
);

if (
$_GET[op]=="lasthit"){
    
$output="";
    
$sql "SELECT output FROM accounts WHERE acctid='{$_GET['userid']}'";
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    echo 
str_replace("<iframe src=","<iframe Xsrc=",$row['output']);
    exit();
}elseif (
$_GET[op]=="edit"){
    
$result db_query("SELECT * FROM accounts WHERE acctid='$_GET[userid]'") or die(db_error(LINK));
    
$row db_fetch_assoc($result) or die(db_error(LINK));
    
output("<form action='user.php?op=special&userid=$_GET[userid]".($_GET['returnpetition']!=""?"&returnpetition={$_GET['returnpetition']}":"")."' method='POST'>",true);
    
addnav("","user.php?op=special&userid=$_GET[userid]".($_GET['returnpetition']!=""?"&returnpetition={$_GET['returnpetition']}":"")."");
    
output("<input type='submit' class='button' name='newday' value='Neuen Tag gewähren'>",true);
    
output("<input type='submit' class='button' name='fixnavs' value='Defekte Navs reparieren'>",true);
    
output("<input type='submit' class='button' name='clearvalidation' value='E-Mail als gültig markieren'>",true);
    
output("</form>",true);

    if (
$_GET['returnpetition']!=""){
        
addnav("Zurück zur Anfrage","viewpetition.php?op=view&id={$_GET['returnpetition']}");
    }
    
    
addnav("Letzten Treffer anzeigen","user.php?op=lasthit&userid={$_GET['userid']}",false,true);

    
output("<form action='user.php?op=save&userid=$_GET[userid]".($_GET['returnpetition']!=""?"&returnpetition={$_GET['returnpetition']}":"")."' method='POST'>",true);

    
addnav("","user.php?op=save&userid=$_GET[userid]".($_GET['returnpetition']!=""?"&returnpetition={$_GET['returnpetition']}":"")."");
    
addnav("","user.php?op=edit&userid=$_GET[userid]".($_GET['returnpetition']!=""?"&returnpetition={$_GET['returnpetition']}":"")."");
    
addnav("Verbannen","user.php?op=setupban&userid=$row[acctid]");
    
addnav("Debug-Log anzeigen","user.php?op=debuglog&userid={$_GET['userid']}");

    
output("<input type='submit' class='button' value='Speichern'>",true);
    
showform($userinfo,$row);
    
output("</form>",true);
    
output("<iframe src='user.php?op=lasthit&userid={$_GET['userid']}' width='100%' height='400'>Dein Browser muss iframes unterstützen, um die letzte Seite des Users anzeigen zu können. Benutze den Link im Menü stattdessen.</iframe>",true);

    
addnav("","user.php?op=lasthit&userid={$_GET['userid']}");
}

elseif (
$_GET['op']=="special")
{
    if (
$_POST['newday']!="")
    {
        
$sql "UPDATE accounts SET lasthit='".date("Y-m-d H:i:s",strtotime(date("r")."-".(86500/getsetting("daysperday",4))." seconds"))."' WHERE acctid='$_GET[userid]'";
    }

    elseif(
$_POST['fixnavs']!="")
    {
$sql "UPDATE accounts SET allowednavs='',output='' WHERE acctid=$_GET[userid]";}

    elseif(
$_POST['clearvalidation']!="")
    {
$sql "UPDATE accounts SET emailvalidation='' WHERE acctid='$_GET[userid]'";}
    
    
db_query($sql);
    
    if (
$_GET['returnpetition']=="")
    {
redirect("user.php");}

    else
    {
redirect("viewpetition.php?op=view&id={$_GET['returnpetition']}");}
}

elseif (
$_GET['op']=="save")
{
    
$sql "UPDATE accounts SET ";
    
// Ein paar Sicherheiten für Änderungen
    // Gesamtname geändert
    
if ($_POST['oldname']!=$_POST['name']) {
        
$clearedname preg_replace('/`./','',$_POST['name']);
        
// Login bleibt gleich
        
if (substr_count($clearedname,$_POST['login'])) {
            
// Titel rausfinden
            
$replace '(`.)*';
            for (
$i=0;$i<strlen($_POST['login']);$i++) {
                
$replace .= $_POST['login']{$i}.'(`.)*';
            }
            
$_POST['ctitle'] = rtrim(preg_replace('/'.$replace.'/','',$_POST['name']));
            if (
$_POST['ctitle']==''$_POST['title'] = '';
            elseif (
$_POST['ctitle']==$_POST['title']) $_POST['ctitle'] = '';
        }
        
// Neuer Login
        
else {
            
// Leerzeichen vorhanden
            
if ($login strrchr($_POST['name'],' ')) {
                
$_POST['login'] = trim(strrchr($clearedname,' '));
                
$_POST['ctitle'] = str_replace($login,'',$_POST['name']);
                if (
$_POST['ctitle']==$_POST['title']) $_POST['ctitle'] = '';
            }
            
// Kein Leerzeichen vorhanden
            
else {
                
$_POST['login'] = $clearedname;
                
$_POST['title'] = $_POST['ctitle'] = '';
            }
        }
    }
    
// Login geändert
    
elseif ($_POST['oldlogin']!=$_POST['login']) {
        if (
$_POST['ctitle']!=''$_POST['name'] = $_POST['ctitle'].' '.$_POST['login'];
        else 
$_POST['name'] = $_POST['title'].' '.$_POST['login'];
    }
    
// Titel geändert
    
elseif ($_POST['oldtitle']!=$_POST['title'] && $_POST['ctitle']=='') {
        if (
$_POST['oldctitle']!=''$colname str_replace($_POST['oldctitle'],'',$_POST['name']);
        else 
$colname str_replace($_POST['oldtitle'],'',$_POST['name']);
        
$_POST['name'] = $_POST['title'].$colname;
    }
    
// Usertitel geändert
    
elseif ($_POST['oldctitle']!=$_POST['ctitle']) {
        if (
$_POST['oldctitle']!=''$colname str_replace($_POST['oldctitle'],'',$_POST['name']);
        else 
$colname str_replace($_POST['oldtitle'],'',$_POST['name']);
        if (
$_POST['ctitle']==''$_POST['name'] = $_POST['title'].$colname;
        else 
$_POST['name'] = $_POST['ctitle'].$colname;
    }

    
reset($_POST);
    while (list(
$key,$val)=each($_POST))
    {
        if (isset(
$userinfo[$key]))
        {
            if (
$key=="newpassword" )
            {if (
$val>""$sql.="password = MD5(\"$val\"),";}

            else
            {
$sql.="$key = \"$val\",";}
        }
    }
    
    
$sql=substr($sql,0,strlen($sql)-1);
    
$sql.=" WHERE acctid=\"$_GET[userid]\"";
    
//output("<pre>$sql</pre>");
    //echo "<pre>$sql</pre>";
    //redirect("user.php");
    //output( db_affected_rows()." rows affected");
    
    //we must manually redirect so that our changes go in to effect *after* our user save.
    
addnav("","viewpetition.php?op=view&id={$_GET['returnpetition']}");
    
addnav("","user.php");
    
saveuser();
    
db_query($sql) or die(db_error(LINK));
    
    if (
$_GET['returnpetition']!="")
    {
header("Location: viewpetition.php?op=view&id={$_GET['returnpetition']}");}

    else
    {
header("Location: user.php");}

    exit();
}elseif (
$_GET[op]=="del"){
    
$sql "SELECT name from accounts WHERE acctid='$_GET[userid]'";
    
$res db_query($sql);
    
    
//Friedhof Skript
        
$sql "SELECT * from accounts WHERE acctid='$_GET[userid]'";
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$sql="INSERT INTO graeber (name,spruch,status,level,age,titel,dk,sex) VALUES ('".$row[login]."','".$spruch."','2','".$row[level]."','".$row[age]."','".$row[title]."','".$row[dk]."','".$row[sex]."')";
        
db_query($sql) or die(db_error(LINK));
//Ende Friedhof Skript
    
    // inventar und haus löschen und partner und ei freigeben
    
if ($_GET['userid']==getsetting('hasegg',0))
    
savesetting('hasegg',stripslashes(0));

    
$sql 'UPDATE items SET owner=0 WHERE owner="'.$_GET['userid'].'"';
    
db_query($sql);

    
$sql 'UPDATE houses SET owner=0,status=3 WHERE owner="'.$_GET['userid'].'" AND status=1';
    
db_query($sql);

    
$sql 'UPDATE houses SET owner=0,status=4 WHERE owner="'.$_GET['userid'].'" AND status=0';
    
db_query($sql);

    
$sql 'UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto="'.$_GET['userid'].'"';
    
db_query($sql);

    
$sql 'DELETE FROM pvp WHERE acctid2="'.$_GET['userid'].'" OR acctid1="'.$_GET['userid'].'"';
    
db_query($sql) or die(db_error(LINK));

    
$sql 'DELETE FROM accounts WHERE acctid="'.$_GET['userid'].'"';
    
db_query($sql);

    
outputdb_affected_rows().' Benutzer gelöscht.');

    while (
$row db_fetch_assoc($res))
    {
        
addnews('`%'.$row['name'].' <span style="color: #FFFF00;">w</span><span style="color: #FCFC06;">u</span><span style="color: #FAFA0C;">r</span><span style="color: #F8F812;">d</span><span style="color: #F6F618;">e</span><span style="color: #F4F41E;"> </span><span style="color: #F2F225;">v</span><span style="color: #F0F02B;">o</span><span style="color: #EEEE31;">n</span><span style="color: #ECEC37;"> </span><span style="color: #EAEA3D;">d</span><span style="color: #E8E844;">e</span><span style="color: #E6E64A;">n</span><span style="color: #E4E450;"> </span><span style="color: #E2E256;">G</span><span style="color: #E0E05C;">ö</span><span style="color: #DEDE63;">t</span><span style="color: #DCDC69;">t</span><span style="color: #DADA6F;">e</span><span style="color: #D8D875;">r</span><span style="color: #D6D67B;">n</span><span style="color: #D4D482;"> </span><span style="color: #D2D288;">a</span><span style="color: #D0D08E;">u</span><span style="color: #CECE94;">f</span><span style="color: #CCCC9A;">g</span><span style="color: #CACAA1;">e</span><span style="color: #C8C8A7;">l</span><span style="color: #C6C6AD;">ö</span><span style="color: #C4C4B3;">s</span><span style="color: #C2C2B9;">t</span><span style="color: #C0C0BF;">.</span>',true);
    }
}

elseif(
$_GET['op']=='setupban')

{
    
$sql "SELECT name,lastip,uniqueid FROM accounts WHERE acctid=\"$_GET[userid]\"";
    
$result db_query($sql) or die(db_error(LINK));
    
$row db_fetch_assoc($result);

    if (
$row[name]!="")
    
output("Setting up ban information based on `\$$row[name]`0
            <form action='user.php?op=saveban' method='POST'>
            Verbannung über IP oder ID (IP bevorzugt. Bei Usern hinter NAT kannst du eine Verbannung über ID versuchen, die aber leicht ungangen werden kann)`n
            <input type='radio' value='ip' name='type' checked> IP: <input name='ip' value=\""
.HTMLEntities($row[lastip])."\">`n
            <input type='radio' value='id' name='type'> ID: <input name='id' value=\""
.HTMLEntities($row[uniqueid])."\">`n
            Dauer: <input name='duration' id='duration' size='3' value='14'> days (0 for permanent)`n
            Grund für die Verbannung: <input name='reason' value=\"Ärger mich nicht.\">`n
            <input type='submit' class='button' value='Post Ban' onClick='if (document.getElementById(\"duration\").value==0) {return confirm(\"Willst du wirklich eine permanente Verbannung aussprechen?\");} else {return true;}'></form>
            Bei einem IP-Bann gib entweder eine komplette IP ein, oder gebe nur den Anfang der IP ein, wenn du einen IP-Bereich sperren willst."
,true);
            
    
addnav("","user.php?op=saveban");
}

elseif(
$_GET[op]=="saveban")
{
    
$sql "INSERT INTO bans (";
    
    if (
$_POST[type]=="ip")
    {
$sql.="ipfilter";}

    else
    {
$sql.="uniqueid";}

    
$sql.=",banexpire,banreason) VALUES (";

    if (
$_POST[type]=="ip")
    {
$sql.="\"$_POST[ip]\"";}

    else
    {
$sql.="\"$_POST[id]\"";}

    
$sql.=",\"".((int)$_POST[duration]==0?"0000-00-00":date("Y-m-d",strtotime(date("r")."+$_POST[duration] days")))."\",";
    
$sql.="\"$_POST[reason]\")";

    if (
$_POST[type]=="ip")
    {
        if (
substr($_SERVER['REMOTE_ADDR'],0,strlen($_POST[ip])) == $_POST[ip])
        {
            
$sql "";
            
output("Du willst dich doch nicht wirklich selbst verbannen, oder?? Das ist deine eigene IP-Adresse!");
        }
    }

    else
    {
        if (
$_COOKIE[lgi]==$_POST[id])
        {
            
$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));
    }
}

elseif(
$_GET[op]=="delban")
{
    
$sql "DELETE FROM bans WHERE ipfilter = '$_GET[ipfilter]' AND uniqueid = '$_GET[uniqueid]'";
    
db_query($sql);
    
redirect("user.php?op=removeban");
}

elseif(
$_GET[op]=="removeban")
{    
    
db_query("DELETE FROM bans WHERE banexpire < \"".date("Y-m-d")."\" AND banexpire>'0000-00-00'");
    
    
$sql "SELECT * FROM bans ORDER BY banexpire";
    
$result db_query($sql) or die(db_error(LINK));
    
    
output("<table><tr>
            <td>Ops</td>
            <td>IP/ID</td>
            <td>Dauer</td>
            <td>Text</td>
            <td>Betrifft:</td></tr>"
,true);
    
    for (
$i=0;$i<db_num_rows($result);$i++)
    {
        
$row db_fetch_assoc($result);
        
        
output("<tr class='".($i%2?"trlight":"trdark")."'><td><a href='user.php?op=delban&ipfilter=".URLEncode($row[ipfilter])."&uniqueid=".URLEncode($row[uniqueid])."'>Bann&nbsp;aufheben</a>",true);

        
addnav("","user.php?op=delban&ipfilter=".URLEncode($row[ipfilter])."&uniqueid=".URLEncode($row[uniqueid]));

        
output("</td><td>",true);
        
output($row[ipfilter]);
        
output($row[uniqueid]);
        
output("</td><td>",true);
        
        
$expire=round((strtotime($row[banexpire])-strtotime(date("r"))) / 86400,0)." Tage";
        
        if (
substr($expire,0,2)=="1 ")
        
$expire="1 Tag";
        
        if (
date("Y-m-d",strtotime($row[banexpire])) == date("Y-m-d"))
        
$expire="Heute";
        
        if (
date("Y-m-d",strtotime($row[banexpire])) == date("Y-m-d",strtotime("1 day")))
        
$expire="Morgen";
        
        if (
$row[banexpire]=="0000-00-00")
        
$expire="Nie";
        
        
output($expire);
        
output("</td><td>",true);
        
output($row[banreason]);
        
output("</td><td>",true);
        
        
$sql "SELECT DISTINCT accounts.name FROM bans, accounts WHERE (ipfilter='".addslashes($row['ipfilter'])."' AND bans.uniqueid='".addslashes($row['uniqueid'])."') AND ((substring(accounts.lastip,1,length(ipfilter))=ipfilter AND ipfilter<>'') OR (bans.uniqueid=accounts.uniqueid AND bans.uniqueid<>''))";
        
$r db_query($sql);

        for (
$x=0;$x<db_num_rows($r);$x++)
        {
            
$ro db_fetch_assoc($r);
            
output("`0{$ro['name']}`n");
        }
        
        
output("</td></tr>",true);
    }
    
    
output("</table>",true);
}

elseif (
$_GET['op']=='debuglog')
{
    
$id $_GET['userid'];
    
    
$sql "SELECT debuglog.*,a1.name as actorname,a2.name as targetname FROM debuglog LEFT JOIN accounts as a1 ON a1.acctid=debuglog.actor LEFT JOIN accounts as a2 ON a2.acctid=debuglog.target WHERE debuglog.actor=$id OR debuglog.target=$id ORDER by debuglog.date DESC,debuglog.id ASC LIMIT 500";

    
addnav('Spieler bearbeiten','user.php?op=edit&userid='.$id.'');

    
$result db_query($sql);
    
$odate "";

    for (
$i=0$i<db_num_rows($result); $i++)
    {
        
$row db_fetch_assoc($result);
        
$dom date('D, d.m.Y',strtotime($row['date']));

        
output('<table align="center" cellpadding="3" cellspacing="3" width="100%">',true);

        if (
$odate != $dom)
        {
            
output('<tr class="trhead"><td>`b'.$dom.'`b',true);

            
$odate $dom;
        }

        
$time date('H:i'strtotime($row['date']));

        
output('</td></tr><tr><td>`l'.$time.' Uhr - '.$row['actorname'].' '.$row['message'].'`0',true);

        if (
$row['target'])
        
output(' '.$row['targetname'].'');

        
output('</td></tr></table>',true);
    }
}

elseif (
$_GET['op']=='')
{
    if (isset(
$_GET['page']))
    {
        
$order 'acctid';

        if (
$_GET[sort]!='')
        
$order ''.$_GET[sort].'';

        
$offset=(int)$_GET['page']*100;

        
$sql "SELECT acctid,login,name,level,laston,gentimecount,lastip,uniqueid,emailaddress FROM accounts ".($where>""?"WHERE $where ":"")."ORDER BY acctid ASC LIMIT $offset,100";
        
$result db_query($sql) or die(db_error(LINK));
        
        
output('<table align="center" cellpadding="3" cellspacing="3" width="100%">
                <tr class="trhead">
                <td>`bAdmin`b</td>
                <td>`b`cAccID`c`b</td>
                <td>`bLogin`b</td>
                <td>`bName`b</td>
                <td>`b`cLevel`c`b</td>
                <td>`bzuletzt online`b</td>
                <td>`bIP`b</td>
                <td>`bE-Mail`b</td></tr>'
,true);

        
$rn=0;
        
        for (
$i=0;$i<db_num_rows($result);$i++)
        {
            
$row=db_fetch_assoc($result);
            
$laston=round((strtotime(date('r'))-strtotime($row['laston'])) / 86400,0).' Tage`0';

            if (
substr($laston,0,2)=='1 ')
            
$laston='`.1 Tag`0';

            if (
date('Y-m-d',strtotime($row['laston'])) == date('Y-m-d'))
            
$laston='`6heute`0';

            if (
date('Y-m-d',strtotime($row['laston'])) == date('Y-m-d',strtotime(date('r').'-1 day')))
            
$laston='`.gestern`0';

            if (
$loggedin)
            
$laston='`%jetzt`0';

            
$row['laston']=$laston;

            if (
$row[$order]!=$oorder)
            
$rn++;

            
$oorder $row[$order];

            
output('<tr><td>
                    <a href="user.php?op=edit&userid='
.$row['acctid'].'">`@bearbeiten`0</a>`n
                   '
.'<a href="user.php?op=del&userid='.$row['acctid'].'" onClick="return confirm(\'Willst du diesen User wirklich löschen?\');">`xlöschen`0</a>`n
                    '
.'<a href="user.php?op=setupban&userid='.$row['acctid'].'">`ybannen`0</a>`n
                    '
.'<a href="user.php?op=debuglog&userid='.$row['acctid'].'">`%Logs`0</a>',true);
                    
            
addnav('','user.php?op=edit&userid='.$row['acctid'].'');
            
addnav('','user.php?op=del&userid='.$row['acctid'].'');
            
addnav('','user.php?op=setupban&userid='.$row['acctid'].'');
            
addnav('','user.php?op=debuglog&userid='.$row['acctid'].'');
            
            
output('</td>
                    <td>`c`l'
.$row['acctid'].'`c`0</td>
                    <td>`l'
.$row['login'].'`0</td>
                    <td>`l'
.$row['name'].'`0</td>
                    <td>`l`c'
.$row['level'].'`c`0</td>
                    <td>`l'
.$row['laston'].'`0</td>
                    <td>`l'
.$row['lastip'].'`0</td>
                    <td>`l'
.$row['emailaddress'].'`0</td>',true);

            
$gentimecount+=$row['gentimecount'];
            
$gentime+=$row['gentime'];

            
output('</tr><tr><td colspan="8"><hr /></td></tr>',true);
        }

        
output('</table><br /><br />',true);

        
output('Treffer gesamt: '.$gentimecount.'`n');
        
output('CPU-Zeit gesamt: '.round($gentime,3).'s`n');
        
output('Durchschnittszeit für Seitenerzeugung: '.round($gentime/max($gentimecount,1),4).'s`n');
    }
}
page_footer();
?>
0.9.7+jt ext (GER)