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!


./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:
<?php
require_once 'common.php';

if (
$_POST['name']!='')
{
    if (
$session['loggedin'])
    {
redirect('badnav.php');}
    
    else
    {
        
$result db_fetch_assoc(db_query("SELECT COUNT(acctid) AS onlinecount FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."'"));

        
$onlinecount $result['onlinecount'];

        
$sql "SELECT * FROM accounts WHERE login = '".mysql_real_escape_string(stripslashes($_POST['name']))."' AND locked=0";
        
$result db_query($sql);

        if (
db_num_rows($result)==1)
        {
            
$session['user']=db_fetch_assoc($result);

            require_once 
'./lib/gilden.php';
            
loadguild($session['user']['memberid']);

            if(
md5($_POST['password']) === $session['user']['password'])
            {
                
$falselogin false;

                
checkban($session['user']['login']); //check if this account is banned
                
checkban(); //check if this computer is banned

                
if ($session['user']['emailvalidation']!="" && substr($session['user']['emailvalidation'],0,1)!="x")
                {
                    
$session['user']=array();
                    
$session['message']="`aFehler: Du musst deine E-Mail Adresse bestätigen lassen, bevor du dich einloggen kannst.`0";
                    echo 
$session['message'];
                    
//header("Location: index.php");
                    
exit();
                }   
                
                else
                {
                    if (
$onlinecount<getsetting("maxonline",10) || getsetting("maxonline",10)==|| $session['user'][superuser]>0)
                    {
                        
$session['loggedin']=true;
                        
$session['output']=$session['user']['output'];
                        
$session['petitions'] = array();
                        
$session['laston']=date("Y-m-d H:i:s");
                        
$session['sentnotice']=0;
                        
$session['user']['dragonpoints']=unserialize($session['user']['dragonpoints']);
                        
$session['user']['prefs']=unserialize($session['user']['prefs']);
                        
$session['bufflist']=unserialize($session['user']['bufflist']);

                        if (!
is_array($session['user']['dragonpoints'])) 
                        
$session['user']['dragonpoints']=array();

                        if (
$session['user']['loggedin'])
                        {
                            
$session['allowednavs']=unserialize($session['user']['allowednavs']);
                            
saveuser();
                            
header("Location: {$session['user']['restorepage']}");
                            exit();
                            
//redirect($session['user']['page']);//"badnav.php");
                        
}

                        
db_query("UPDATE accounts SET loggedin=".true.", location=0 WHERE acctid = ".$session['user']['acctid']);
                        
$session['user']['loggedin']=true;
                        
$location $session['user']['location'];
                        
$session['user']['location']=0;
                        
debuglog('`,hat sich eingeloggt`0');
                        
                        
//they're not really dead, they were killed in pvp.
                        
if ($session['user']['alive']==&& $session['user']['slainby']!="")
                        {
$session['user']['alive']=true;}

                        if (
getsetting("logdnet",0))
                        {
                            
//register with LoGDnet
                            
@file(getsetting("logdnetserver","http://lotgd.net/")."logdnet.php?addy=".URLEncode(getsetting("serverurl","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])))."&desc=".URLEncode(getsetting("serverdesc","Another LoGD Server"))."&version=".URLEncode($logd_version)."");
                            
                            if(
$session['user']['prison']==1)
                            {
redirect('kerker.php');}

                            if(
$session['user']['einzelhaft']==1)
                            {
redirect('kerker.php');}
                        }

                        if (
$location==0)
                        {
redirect('news.php');}

                        else if(
$location==1)
                        {
redirect('inn.php?op=strolldown');}

                        else if(
$location==2)
                        {
redirect('houses.php?op=newday');}
                        
                        else if(
$location==3)
                        {
redirect('village.php?op=newday');}

                        else
                        {
                            
saveuser();
                            
header('Location: '.$session['user']['restorepage'].'');
                            exit();
                        }
                    }

                    else
                    {
                        
$session['user'] = array();
                        
$session['message']='`4Fehler: Der Server ist voll.`0';
                        
redirect('index.php');
                    }
                }
            } 
            
            else 
            {
$falselogin true;}
        }
    
        else 
        {
$falselogin true;}

        if(
$falselogin === true
        {
            
//}else{
            
$session['message']='`}Die Login-Daten waren ungültig.`0';
            
//now we'll log the failed attempt and begin to issue bans if there are too many, plus notify the admins.

            
$sql 'DELETE FROM faillog WHERE date<"'.date('Y-m-d H:i:s',strtotime(date('r').'-'.(getsetting('expirecontent',180)/4).' days')).'"';
            
checkban();
            
db_query($sql);

            
$sql 'SELECT acctid FROM accounts WHERE login="'.$_POST['name'].'"';
            
$result db_query($sql);

            if (
db_num_rows($result)>0)
            {   
// just in case there manage to be multiple accounts on this name.
                
while ($row=db_fetch_assoc($result))
                {
                    
$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>=10)
                    { 
// 5 failed attempts for superuser, 10 for regular user
                        
$sql "INSERT INTO bans VALUES ('{$_SERVER['REMOTE_ADDR']}','','".date("Y-m-d H:i:s",strtotime(date("r")."+".($c*3)." hours"))."','Automatischer Systembann: Zu viele fehlgeschlagene Loginversuche.')";
                        
db_query($sql);

                        if (
$su)
                        { 
// send a system message to admins regarding this failed attempt if it includes superusers.
                            
$sql "SELECT acctid FROM accounts WHERE superuser>=5";
                            
$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);
                            }
                        }
                    }
                }
            }
            
            else
            {}

            
redirect('index.php');
        }
    }
}

else if (
$_GET['op']=='logout')
{
    if (
$session['user']['loggedin'])
    {
        
debuglog('`+hat sich ausgeloggt`0');
        
$sql 'UPDATE accounts SET loggedin=0,rpbulb=0 WHERE acctid="'.$session['user']['acctid'].'"';
        
db_query($sql) or die(sql_error($sql));
    }

    
$session=array();
    
redirect('index.php');
}

// If you enter an empty username, don't just say oops.. do something useful.
$session=array();
$session['message']='`}Die Login-Daten waren fehlerhaft.`0';

redirect('index.php');
?>
0.9.7+jt ext (GER)