Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition: 0.9.7(DS V3) Ithil-Edition


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release der Dragonslayer-Edition ist für jeden Interessenten frei zum Download verfügbar. 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!


./login.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:
<?php
/**
* login.php:    Script zum Login in das Spiel.
* @author LOGD-Core, modified by Drachenserver-Team
* @version DS-E V/2
*/

require_once('common.php');

// Wenn Name gegeben ( = Loginversuch )
if ( !empty($_POST['name']) || !empty($session['loginname']) ||  (!empty($_COOKIE["username"]) || !empty($_COOKIE["passwort"]) ) && $_GET['op']!="logout" )
{
    
// Wenn wir bereits eingeloggt sind
    
if ($session['loggedin'])
    {
        
redirect("badnav.php");
    }


    
$str_name $_POST['name'];
    
$str_pass $_POST['hidden_pw'];
    if(!
$str_name &! $str_pass)
    {
        
$cookie_user $_COOKIE["username"];
        
$cookie_pw $_COOKIE["passwort"];
        
        
$str_name $cookie_user;
        
$str_pass $cookie_pw;
    }
    unset(
$session['loginname']);
        unset(
$session['loginpw']);

    
// Filter auf diesen PC überprüfen
    //checkban();

    // Nach Account mit eingegebenen Daten suchen
    
$sql "SELECT acctid,login,emailvalidation,superuser,emailaddress,lastip,uniqueid,banoverride FROM accounts WHERE login = '$str_name' AND password='$str_pass' AND locked=0 AND NOT isrp";
    
$result db_query($sql);

    
// Kein Account mit diesen Daten gefunden!
    
if(!db_num_rows($result))
    {
        
$session['message']="`4Fehler: Login-Daten waren ungültig.`0";

        
// Wenn PW-Feld nicht auf NULL gesetzt wird: Lässt darauf schließen, dass JS deaktiviert
        
if(strlen($_POST['password']) > 0) {
            
$session['message'] .= '`n`^Für einen korrekten Login muss JavaScript aktiviert sein!`nUm weitere Informationen dazu zu erhalten, werfe einen Blick in die technische FAQ oder schreibe eine Anfrage ; )`0';
        }

        
// Überprüfen, auf welchen Account sich Loginversuch bezogen haben könnte
        
$sql "SELECT acctid FROM accounts WHERE login='$str_name'";
        
$result db_query($sql);

        
// Account gefunden
        
if (db_num_rows($result)>0)
        {
            
// Wenn wir mehrere Accounts unter diesem Namen haben
            
while ($row=db_fetch_assoc($result))
            {
                
// Faillog hinzufügen
                
$sql "INSERT INTO faillog VALUES (0,now(),'".addslashes(serialize($_POST))."','{$_SERVER['REMOTE_ADDR']}','{$row['acctid']}','{$_COOKIE['lgi']}')";
                
db_query($sql);

                
$sql "SELECT faillog.*,accounts.superuser,name,login FROM faillog INNER JOIN accounts ON accounts.acctid=faillog.acctid WHERE ip='{$_SERVER['REMOTE_ADDR']}' AND date>'".date("Y-m-d H:i:s",strtotime(date("r")."-1 day"))."'";
                
$result2 db_query($sql);
                
$c=0;
                
$alert="";
                
$su=false;
                while (
$row2=db_fetch_assoc($result2))
                {
                    if (
$row2['superuser']>0)
                    {
                        
$c+=1;
                        
$su=true;
                    }
                    
$c+=1;
                    
$alert.="`3{$row2['date']}`7: Failed attempt from `&{$row2['ip']}`7 [`3{$row2['id']}`7] to log on to `^{$row2['login']}`7 ({$row2['name']}`7)`n";
                }
                if (
$c>=20)
                {
                    
setban(0,'Automatischer Systembann: Zu viele fehlgeschlagene Loginversuche.',date("Y-m-d H:i:s",strtotime(date("r")."+".($c*3)." hours")),$_SERVER['REMOTE_ADDR']);

                    
systemlog('Systemban aufgrund zu vieler fehlgeschlagener Logins, IP: '.$_SERVER['REMOTE_ADDR']);

                    
// 10 failed attempts for superuser, 20 for regular user
                    
if ($su)
                    {
                        
// send a system message to admins regarding this failed attempt if it includes superusers.
                        
$sql "SELECT acctid FROM accounts WHERE superuser>0";
                        
$result2 db_query($sql);
                        
$subj "`#{$_SERVER['REMOTE_ADDR']} failed to log in too many times!";
                        for (
$i=0$i<db_num_rows($result2); $i++)
                        {
                            
$row2 db_fetch_assoc($result2);
                            
//delete old messages that
                            
$sql "DELETE FROM mail WHERE msgto={$row2['acctid']} AND msgfrom=0 AND subject = '$subj' AND seen=0";
                            
db_query($sql);
                            if (
db_affected_rows()>0)
                            {
                                
$noemail true;
                            }
                            else
                            {
                                
$noemail false;
                            }
                            
systemmail($row2['acctid'],"$subj","This message is generated as a result of one or more of the accounts having been a superuser account.  Log Follows:`n`n$alert",0,$noemail);
                        }
                        
//end for
                    
}
                    
//end if($su)
                
}
                
//end if($c>=20)
            
}
            
//end while
        
}
        
// end wenn account mit diesem namen vorhanden
        
redirect("index.php");
        exit;
    }    
// END Login failed

    // Logindaten stimmen, wichtigste Accountdaten abrufen
    
$arr_user db_fetch_assoc($result);

    
$session['banoverride'] = (bool)$arr_user['banoverride'];

    
// Filter auf diesen Account?
    
checkban($arr_user['login'], $arr_user['lastip'], $arr_user['uniqueid'], $arr_user['emailaddress']);

    
// Check, ob Email schon bestätigt wurde
    
if ($arr_user['emailvalidation']!="" && substr($arr_user['emailvalidation'],0,1)!="x")
    {
        unset(
$arr_user);
        
$session['user'] = array();
        
$session['message']="`4Fehler: Du musst deine E-Mail Adresse bestätigen lassen, bevor du dich einloggen kannst.";
        
redirect("index.php");

    }

    
// Anzahl der eingeloggten Spieler ermitteln
    
$result db_fetch_assoc(db_query("SELECT COUNT(*) AS onlinecount FROM accounts WHERE locked=0 AND ".user_get_online() ));
    
$onlinecount $result['onlinecount'];

    
// Auf max. Useranzahl checken
    
if ($onlinecount>getsetting("maxonline",10) && getsetting("maxonline",10)!=&& $arr_user['superuser']==0)
    {
        unset(
$arr_user);
        
$session['user'] = array();
        
$session['message']="`4Fehler: Der Server ist voll.`0";
        
redirect("index.php");
    }
    
    
    
// Vollständige Userdaten in Session laden
    // user_load($arr_user['acctid']);
    
$Char = new CCharacter$arr_user['acctid'], true );
    
    
// Auf Wartungsmodus checken
    
if(!$access_control->su_check(access_control::SU_RIGHT_WARTUNG) && getsetting('wartung',0)) {

        
$session['user'] = array();
        
$session['message']="`4Fehler: `^Der Server befindet sich derzeit im Wartungsmodus.`n
                                Die Administration nimmt vermutlich gerade wichtige Änderungen
                                am System vor. Bitte warte, bis der Server wieder offen ist!`0"
;
        
redirect("index.php");

    }

    
$session['loggedin']=true;

    
// Stats
    
$arr_laststats user_get_stats('logintime,onlinetime,comments_rp,comments_rp_ges');
    
// Wenn kein korrekter Logout
    
if($arr_laststats['logintime'] > 0) {
        
// Jetzt updaten
        
$int_timeout = (int)getsetting('LOGINTIMEOUT',900) * 0.1;
        
$int_timediff min(strtotime($session['user']['laston']) + $int_timeout,time()) - $arr_laststats['logintime'];
        
$arr_laststats['onlinetime'] = $arr_laststats['onlinetime'] + $int_timediff;
    }
    
// ======================
    // In Cookie Account ID Speichern
    
if($_POST['dauerlogin'] || (!empty($_COOKIE["username"])))
    {
        
setcookie("username",$str_name,0);
        
setcookie("passwort",$str_pass,0);
    }
    
// ======================
    
    // RP-Kommentare
    // Belohnung von DPs auf RP Punkte geändert mit denen man sich einiges an Sachen kaufen kann, variablennamen ect. sind aber trotzdem noch don
    // Shaiya 2.1.11
    
if($arr_laststats['comments_rp'] >= (int)getsetting('rpdon_mincomments',10)) {

        
$int_don round($arr_laststats['comments_rp'] * (float)getsetting('rpdon_dpcomment','0'));

        
$arr_aei user_get_aei('rprating');
        if(
$arr_aei['rprating'] == || $arr_aei['rprating'] == -1) {    // nicht vorhanden
            
$int_don 0;
        }
        elseif(
$arr_aei['rprating'] == 1) {    // durchschnitt
            
$int_don round($int_don 1);
        }
        elseif(
$arr_aei['rprating'] == 2) {    // > avg
            
$int_don round($int_don 1); 
        }
        elseif(
$arr_aei['rprating'] == 3) { // Blubberplayer
            
$int_don round($int_don 0.75);
        }

        if(
$int_don 0) {
            
systemmail($session['user']['acctid'],'`b`qBelohnung für dein Rollenspiel!`0`b',
                                                    
'`ySei gegrüßt `q'.$session['user']['name'].'`y!`n`n
                                                    Wir möchten Dir für Deine rege Beteiligung am Rollenspiel dieses Servers herzlich danken.
                                                    Als kleines Präsent erhältst Du `q'
.$int_don.'`y RP Punkte.`n`n
                                                    Liebe Grüße`nDein '
.getsetting('teamname','Drachenserver-Team').'`n`n
                                                    Eintauschen kannst du diese Punkte bei der Nymphe im Garten.'
);
            
$session['user']['rppunkte'] += $int_don;
            
debuglog($int_don.' DP für Rollenspiel ('.$arr_laststats['comments_rp'].' Kommentare)');
            
$arr_laststats['comments_rp_ges'] += $arr_laststats['comments_rp'];
            
$arr_laststats['comments_rp_tageszaehler'] += $arr_laststats['comments_rp'];
            
$arr_laststats['comments_rp'] = 0;
        }

    }
    
    
// Aktualisiere Laston
    
if (date('Y-m-d',strtotime($session['user']['laston']))==date('Y-m-d',strtotime(date('r').'-1 day'))) //laston = gestern
        
{
        
$session['user']['donation']++;
        
$session['user']['donation']++;
        }
    
$session['user']['laston'] = date('Y-m-d H:i:s');
    
    
$arr_laststats['logintime'] = time();
    
user_set_stats($arr_laststats);
    
// END Stats
    
require_once(LIB_PATH.'browser.lib.php');
    
browser_set$arr_user['acctid']);
    
// Wenn wir bereits eingeloggt sind
    
if ($session['user']['loggedin'] || $session['user']['restatlocation'] == USER_RESTATLOC_TIMEOUT)
    {
        
debuglog('Login nach Timeout (restorepage: '.$session['user']['restorepage'].', '.($session['user']['maxhitpoints']).'LP, '.($session['user']['charm']).'CH, '.($session['user']['gems']).'+'.$session['user']['gemsinbank'].'Gems)',0,true);
        
$session['user']['loggedin'] = true;
        
$session['user']['restatlocation'] = 0;
        
//saveuser(); << saveuser wird doch bei redirect gemacht
        
        //zweit account daten laden
        
$arr_multis = array();
        
$sql="select slave, master from account_multi where master=".$session['user']['acctid']." or slave=".$session['user']['acctid']." limit 2";
        
$res db_query($sql);
        while(
$r db_fetch_assoc($res))
        {
            
array_push($arr_multis$r);
            
//array_push($arr_logins, strtolower($r['login']));
        
}
        
$i=2;
        foreach( 
$arr_multis as $multi )
        {
            if(
$multi['slave'] != $session['user']['acctid'])
                
$session['user'.$i]['acctid']=$multi['slave'];
            else
                
$session['user'.$i]['acctid']=$multi['master'];
            
$i++;
        }
        if(
$session['user2']['acctid'])
        {
            
$sql="update accounts set showonline=true where acctid=".$session['user2']['acctid']." ";
            
$res db_query($sql);
        }
        if(
$session['user3']['acctid'])
        {
            
$sql="update accounts set showonline=true where acctid=".$session['user3']['acctid']." ";
            
$res db_query($sql);
        }
        
//ende zweit account daten laden
        
        
if($session['user']['imprisoned']!=0)
        {
            
redirect("prison.php");
        }
        else{
            if( empty(
$session['user']['restorepage']) ){//wenn restorepage leer ist, dann ab zum DP
                
debuglog("leere restorepage beim login");
                
redirect("village.php");
            }
            else{
                
saveuser();
                
header("Location: {$session['user']['restorepage']}");
                exit();
            }
        }
        exit();
    }

    
$session['user']['loggedin'] = true;
    

    if (
getsetting('logdnet',0) == && !LOCAL_TESTSERVER)
    {
        
$url=getsetting('logdnetserver','http://lotgd.net/').'logdnet.php?addy='.URLEncode(getsetting('server_address','http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI']))).'&desc='.URLEncode(getsetting('serverdesc','Another LoGD Server')).'&version='.URLEncode(GAME_VERSION);
        if(
function_exists('curl_init'))
        {
            
$ch curl_init();
            
curl_setopt($chCURLOPT_URL$url);
            
curl_setopt($chCURLOPT_TIMEOUT10);
            
curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
$resulturl=trim(curl_exec($ch));
            
curl_close($ch);
            
$file=explode("\n"$resulturl);
        }
        elseif (
ini_get('allow_url_fopen') == '1')
        {
            
//register with LoGDnet
            
@file($url);
        }
    }

    
//Schreibe debugeintrag, der User hat sich eingelogged
    
debuglog('Login (Loc '.$session['user']['location'].', Restatloc '.$session['user']['restatlocation'].'): '.($session['user']['maxhitpoints']).'LP, '.($session['user']['charm']).'CH, '.($session['user']['gems']).'+'.$session['user']['gemsinbank'].'Gems',0,true);

    
//Anfragen-Sternchen für Superuser
    
if($access_control->su_check(access_control::SU_RIGHT_PETITION))
    {
        
$arr_petids=db_get_all('SELECT petitionid FROM petitions','petitionid'); //nur vorhandene Anfragen sind interessant
        
$arr_aei user_get_aei('seenpetitions');
        
$session['petitions']=unserialize($arr_aei['seenpetitions']);
        if(!
is_array($session['petitions']))
        {
            
$session['petitions']=array();
        }
        foreach(
$session['petitions'] as $key=>$val)
        { 
//gelöschte Anfragen auch aus dem Gesehen-Status löschen
            
if(!array_key_exists($key,$arr_petids))
            {
                unset(
$session['petitions'][$key]);
                
$aei_needupdate=true;
            }
        }
        if(
$aei_needupdate)
        {
            
user_set_aei(array('seenpetitions'=>addslashes(serialize($session['petitions']))));
        }
    } 
//END Anfragen-Sternchen
    
    //zweit account daten laden
    
$arr_multis = array();
    
$sql="select slave, master from account_multi where master=".$session['user']['acctid']." or slave=".$session['user']['acctid']." limit 2";
    
$res db_query($sql);
    while(
$r db_fetch_assoc($res))
    {
        
array_push($arr_multis$r);
        
//array_push($arr_logins, strtolower($r['login']));
    
}
    
$i=2;
    foreach( 
$arr_multis as $multi )
    {
        if(
$multi['slave'] != $session['user']['acctid'])
            
$session['user'.$i]['acctid']=$multi['slave'];
        else
            
$session['user'.$i]['acctid']=$multi['master'];
        
$i++;
    }
    if(
$session['user2']['acctid'])
    {
        
$sql="update accounts set showonline=true where acctid=".$session['user2']['acctid']." ";
        
$res db_query($sql);
    }
    if(
$session['user3']['acctid'])
    {
        
$sql="update accounts set showonline=true where acctid=".$session['user3']['acctid']." ";
        
$res db_query($sql);
    }
    
//ende zweit account daten laden
    
    // Je nach Logoutort weiterleiten
    
$location $session['user']['location'];
    
$session['user']['location']=0;

    switch(
$location) {
        case 
USER_LOC_FIELDS// In den Feldern
            
if($session['user']['alive'])
            {
                
redirect("dorftor.php");
            }
            else
            {
                
redirect("shades.php");
            }
        break;

        case 
USER_LOC_INN:    // In der Taverne
            
redirect("inn.php?op=strolldown");
        break;

        case 
USER_LOC_HOUSE:    // Im Haus

            
$hausnr=($session['user']['restatlocation']);
            
$session['user']['restatlocation'] = 0;
            
redirect('inside_houses.php?act=rest&id='.$hausnr.'&getnd=1');
        break;

        case 
USER_LOC_PRISON:    // Kerker
            
if($session['user']['prangerdays']>0){
                
redirect("pranger.php");
            }
            else {
                
redirect("prison.php");
            }
        break;

        case 
USER_LOC_VACATION// war im Urlaubsmodus
            
redirect("vacation.php?op=return");
        break;

        default:    
// Timeout
            //saveuser(); << saveuser wird doch bei redirect gemacht
            
if( empty($session['user']['restorepage']) ){//wenn restorepage leer ist, dann ab zum DP
                
debuglog("leere restorepage beim login");
                
redirect("village.php");
            }
            else{
                
//header("Location: {$session['user']['restorepage']}");
                
debuglog('Redirect login.php ~> badnav.php - Default-Wert der location - sollte nicht auftreten!');
                
redirect('badnav.php');
                exit();
            }
        break;
    }
    
// END Ort feststellen

}    // END if Name gegeben

// LOGOUT
else if ($_GET['op']=="logout")
{
    
setcookie("username"""time() - 3600);
    
setcookie("passwort"""time() - 3600);
    
    if (
$session['user']['loggedin'])
    {
        
//zweit account daten entladen
        
if($session['user2']['acctid'])
        {
            if(!(
user_get_online($session['user3']['acctid'])) || !($session['user3']['acctid'])) // dritter account nicht eingeloggt oder existiert gar nicht dann lösche 2. acc aus showonline
            
{
                
$sql="update accounts set showonline=false where acctid=".$session['user2']['acctid']." ";
                
$res db_query($sql);
            }
        }
        if(
$session['user3']['acctid'])
        {
            if(!(
user_get_online($session['user2']['acctid'])) || !($session['user2']['acctid']))// zweiter account nicht eingeloggt oder existiert gar nicht dann lösche 3. acc aus showonline
            
{
                
$sql="update accounts set showonline=false where acctid=".$session['user3']['acctid']." ";
                
$res db_query($sql);
            }
        }
        
$session['user2']='';
        
$session['user3']='';
        
//ende zweit account daten entladen
        
$int_loc = (int)$_GET['loc'];
        
$int_restatloc = (int)$_GET['restatloc'];

        
// Stats
        
user_set_stats( array('onlinetime'=>'onlinetime + IF(logintime>0,(UNIX_TIMESTAMP(NOW())-logintime),0)','logintime'=>0) );
        
// END Stats

        
$sql "SELECT bufflist FROM accounts WHERE acctid=".$session['user']['acctid'];
        
$result db_query($sql);
        
$row db_fetch_assoc($result);

        if (
$row['bufflist'])
        {
            
$row['bufflist']=unserialize($row['bufflist']);
            if (
$row['bufflist']['dodo'] != "")
            {
                unset(
$row['bufflist']['dodo']);
                
$row['bufflist']=serialize($row['bufflist']);

                
$row['bufflist'] = db_real_escape_string($row['bufflist']);
                
                
user_update(
                    array
                    (
                        
'bufflist'=>$row['bufflist']
                    ),
                    
$session['user']['acctid']
                );
            }
        }

        
debuglog('Logout (Loc '.$int_loc.', Restatloc '.$int_restatloc.'): '.($session['user']['maxhitpoints']).'LP, '.($session['user']['charm']).'CH, '.($session['user']['gems']).'+'.$session['user']['gemsinbank'].'Gems');
        
        
user_update(
            array
            (
                
'location'=>$int_loc,
                
'loggedin'=>0,
                
'restatlocation'=>$int_restatloc,
                
'output'=>'Ausgeloggt in Loc '.$int_loc.', Restatloc '.$int_restatloc.' am '.date('d.m.Y H:i:s')
            ),
            
$session['user']['acctid']
        );
    }

    if(
$session['user']['acctid']==getsetting('demouser_acctid',0))
    { 
//Endtext für Demo-Zugang
        
Atrahor::clearSession();
        
redirect('demouser.php?op=logout',falsefalse);
    }
    
Atrahor::clearSession();
    
redirect('index.php',falsefalse);
}

// If you enter an empty username, don't just say oops.. do something useful.
Atrahor::clearSession();
$session['message']="`4Fehler: Die Login-Daten waren fehlerhaft.`0";
redirect("index.php");
?>
0.9.7(DS V3) Ithil-Edition