ER-Sourceviewer 2007 v2.0

Alle Dateien, die hier eingesehen werden können, sind unter der GNU GPL lizenziert. Wenn du etwas darin findest, das du gerne hättest, so schreibe mir doch bitte eine Anfrage damit ich, wenn ich es rausgeben will, alle Änderungen raussuchen könnte. Denn ich übernehme keine Verantwortung, solltest du was rausnehmen und es geht nicht. Und Support deswegen geb ich schon gar nicht.

Solltest du eine Schwachstelle im Code finden, sei es eine kritische Lücke oder eine Möglichkeit zu cheaten, dann bitte ich dich, mir das mitzuteilen. Solltest du beim cheaten erwischt werden, werde ich deinen Account eigenhändig löschen & bannen; Solltest du meinen Server angreifen, so werde ich meine Rechtsschutzversicherung kontaktieren.

Zur Source springen

Verzeichnisse:


Source anzeigen

Nach Oben


<?php

// 22062004
//umgeschrieben auf Geldautomaten von Kita

require_once "common.php";
page_header("Geldautomat");
output("`c`bDer Geldautomat`b`c");
//Anzeige der aktuellen Position
       
$session[user][ort]='Am Geldautomaten';
if (
$HTTP_GET_VARS[op]==""){
  
checkday();
  
output("`n`n`n<tt><font size='3'>
          -=-=-=-=-=-=-=-=-=-=-=-`n`n
          Frage Kontodaten ab...`n
          Kontobesitzer: "
.$session[user][name]."",true);
    if (
$session[user][goldinbank]>=0){
        
output("`nKontostand: ".$session[user][goldinbank]." Caro`n`n
        -=-=-=-=-=-=-=-=-=-=-=-"
,true);
        
    }else{
        
output("Kontostand: ".abs($session[user][goldinbank])." im Minus</font></tt>`0`n`n");
        
output("(`iSchulden verfallen durch einen Großmeistersieg nicht!`i)`n`n
        
        -=-=-=-=-=-=-=-=-=-=-=-"
);
    }
}else if(
$_GET['op']=="transfer"){
    
output("`n`n`n<tt><font size='3'>`bGeld überweisen`b:</font></tt>`0`n`n",true);
    if (
$session[user][goldinbank]>=0){
        
output("<tt><font size='3'>Maximaler Betrag der pro Level des Empfängers überwiesen werden kann: ".getsetting("transferperlevel",25)." Caro`n",true);
        
$maxout $session['user']['level']*getsetting("maxtransferout",25);
        
$minfer round(getsetting("transferperlevel",25)/10*((int)$session['user']['level']/2));
        
output("Minimaler Betrag der mindestens Überwiesen werden muss: $minfer Caro.`n",true);
        
output("Überweisungssumme maximal insgesamt: $maxout Caro",true);
        if (
$session['user']['amountouttoday'] > 0) {
            
output("(Heutige überwiesene Summe: {$session['user']['amountouttoday']} Caro)`n`n");
        } else 
output("`n`n");
        
output("<form action='bank.php?op=transfer2' method='POST'>Wieviel ü<u>b</u>erweisen: <input name='amount' id='amount' accesskey='b' width='5'>`n",true);
        
output("E<u>m</u>pfänger: <input name='to' accesskey='m'>`n (Unvollständige Namen werden automatisch ergänzt. Sie werden noch einmal zum Bestätigen aufgefordert.)</font></tt>`0`n",true);
        
output("<input type='submit' class='button' value='Vorschau'></form>",true);
        
output("<script language='javascript'>document.getElementById('amount').focus();</script>",true);
        
addnav("","bank.php?op=transfer2");
    }else{
        
output("<tt><font size='3'>Überweisungen an Verschuldete Kontoinhaber sind nicht möglich!</font></tt>`0",true);
    }
}else if(
$_GET['op']=="transfer2"){
    
output("<tt><font size='3'>`bÜberweisung bestätigen`b:</font></tt>`0`n",true);
    
$string="%";
    for (
$x=0;$x<strlen($_POST['to']);$x++){
        
$string .= substr($_POST['to'],$x,1)."%";
    }
    
$sql "SELECT name,login FROM accounts WHERE name LIKE '".addslashes($string)."'";
    
$result db_query($sql);
    
$amt abs((int)$_POST['amount']);
    if (
db_num_rows($result)==1){
        
$row db_fetch_assoc($result);
        
output("<form action='bank.php?op=transfer3' method='POST'>",true);
        
output("<tt><font size='3'>Überweisung über $amt Caro an $row[name].</font></tt>`0`n",true);
        
output("<input type='hidden' name='to' value='".HTMLEntities($row['login'])."'><input type='hidden' name='amount' value='$amt'><input type='submit' class='button' value='Überweisung abschließen'></form>",true);
        
addnav("","bank.php?op=transfer3");
    }elseif(
db_num_rows($result)>100){
        
output("<tt><font size='3'>ERROR! Zu viele mögliche Empfänger! Bitte den Namen etwas genauer eingeben:`n`n");
        
output("<form action='bank.php?op=transfer2' method='POST'>Wieviel ü<u>b</u>erweisen: <input name='amount' id='amount' accesskey='b' width='5' value='$amt'>`n",true);
        
output("E<u>m</u>pfänger: <input name='to' accesskey='m' value='"$_POST['to'] . "'> `n(Unvollständige Namen werden automatisch ergänzt. Sie werden noch einmal zum Bestätigen aufgefordert).</font></tt>`0`n",true);
        
output("<input type='submit' class='button' value='Vorschau'></form>",true);
        
output("<script language='javascript'>document.getElementById('amount').focus();</script>",true);
        
addnav("","bank.php?op=transfer2");
    }elseif(
db_num_rows($result)>1){
        
output("<form action='bank.php?op=transfer3' method='POST'>",true);
        
output("<tt><font size='3'>Überweisung über $amt Caro an <select name='to' class='input'></font></tt>`0",true);
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
//output($row[name]." ".$row[login]."`n");
            
output("<option value=\"".HTMLEntities($row['login'])."\">".preg_replace("'[`].'","",$row['name'])."</option>",true);
        }
        
output("</select><input type='hidden' name='amount' value='$amt'><input type='submit' class='button' value='Überweisung abschließen'></form>",true);
        
addnav("","bank.php?op=transfer3");
    }else{
        
output("<tt><font size='3'>ERROR! Es konnte niemand mit dem Namen gefunden werden. Bitte versuchen sie es noch einmal.</font></tt>`0",true);
    }
}else if(
$_GET['op']=="transfer3"){
    
$amt abs((int)$_POST['amount']);
    
output("<tt><font size='3'>`bÜberweisung abschließen`b</font></tt>`0`n",true);
    if (
$session[user][gold]+$session[user][goldinbank]<$amt){
        
output("<tt><font size='3'>ERROR! $amt Caro können nicht überwiesen werden. Aktueller Guthabensstand beträgt ".($session[user][gold]+$session[user][goldinbank])." Caro.</font></tt>`0",true);
    }else{
        
$sql "SELECT name,acctid,level,transferredtoday,lastip,emailaddress,uniqueid FROM accounts WHERE login='{$_POST['to']}'";
        
$result db_query($sql);
        if (
db_num_rows($result)==1){
            
$row db_fetch_assoc($result);
            
$maxout $session['user']['level']*getsetting("maxtransferout",25);
            
$maxtfer $row['level']*getsetting("transferperlevel",25);
            
$minfer round(getsetting("transferperlevel",25)/10*((int)$session['user']['level']/2));
            if (
$session['user']['amountouttoday']+$amt $maxout) {
                
output("<tt><font size='3'>Überweisung abbgebrochen: Maximal erlaubte Überweisungssumme am Tag beträgt $maxout Caro.</font></tt>`0",true);
            }else if (
$maxtfer<$amt){
                
output("<tt><font size='3'>Überweisung abgebrochen: {$row['name']} darf maximal $maxtfer Caro empfangen.</font></tt>`0",true);
            }else if(
$row['transferredtoday']>=getsetting("transferreceive",3)){
                
output("<tt><font size='3'>Überweisung abgebrochen: {$row['name']} hat heute schon zu viele Überweisungen oder Edelsteine erhalten.</font></tt>`0",true);
            }else if(
$amt<$minfer){
                
output("<tt><font size='3'>Überweisung abgebrochen: Minimale Summe für eine Überweisung ist $minfer Caro.</font></tt>`0",true);
            }else if(
$row['acctid']==$session['user']['acctid']){
                
output("<tt><font size='3'>Überweisung abgebrochen: Überweisungen auf das eigene Konto sind sinnlos.</font></tt>`0",true);
             } else if (
ac_check($row)){
//             } else if ($session[user][emailaddress]==$row[emailaddress] && $row[emailaddress]){
                
output("<tt><font size='3'>`\$`bÜberweisung abgebrochen:`b Du darfst kein Geld an deine eigenen Charaktere überweisen!</font></tt>`0",true);
            }else{
                
//debuglog("transferred $amt gold to", $row['acctid']);
                
$session[user][gold]-=$amt;
                if (
$session[user][gold]<0){ //withdraw in case they don't have enough on hand.
                    
$session[user][goldinbank]+=$session[user][gold];
                    
$session[user][gold]=0;
                }
                
$session['user']['amountouttoday']+= $amt;
                
$sql "UPDATE accounts SET goldinbank=goldinbank+$amt,transferredtoday=transferredtoday+1 WHERE acctid='{$row['acctid']}'";
                
db_query($sql);
                
output("<tt><font size='3'>Transfer vollständig!</font></tt>`0",true);
                
//$session['user']['donation']+=1;
                
systemmail($row['acctid'],"Überweisung erhalten`0","{$session['user']['name']}`x hat dir `†$amt Caro `xauf dein Konto überwiesen!");
            }
        }else{
            
output("<tt><font size='3'>Überweisung fehlgeschlagen. Bitte versuchen sie es noch einmal.</font></tt>`0",true);
        }
    }



}else if(
$_GET['op']=="gemtrans"){
    
output("<tt><font size='3'>`bEdelstein versenden`b:</font></tt>`0`n`n",true);
    if ((
$session[user][gold]>=100 || $session[user][gold]+$session[user][goldinbank]>=100) && $session[user][gems]>0){
        
output("<tt><font size='3'>Versandgebühr für 1 Edelstein: 100 Caro`n
               Mindeststufe des Empfängers: Level 3`0`n`n"
,true);
        
output("<form action='bank.php?op=gemtrans2' method='POST'>1 Edelstein versenden a<u>n</u>: <input name='to' accesskey='n'> `n(Unvollständige Namen werden automatisch ergänzt. Sie werden noch einmal zum Bestätigen aufgefordert).</font></tt>`0`n",true);
        
output("<input type='submit' class='button' value='Vorschau'></form>",true);
        
addnav("","bank.php?op=gemtrans2");
    }else if (
$session[user][gold]+$session[user][goldinbank]<100){
        
output("<tt><font size='3'>Versand abgebrochen: Nicht genügend Caro vorhanden!</font></tt>`0",true);
    } else {
        
output("<tt><font size='3'>Versand abgebrochen: Nicht genügend Edelsteine vorhanden!</font></tt>`0",true);
    }
}else if(
$_GET['op']=="gemtrans2"){
    
output("<tt><font size='3'>`bVersand bestätigen`b:</font></tt>`0`n",true);
    
$string="%";
    for (
$x=0;$x<strlen($_POST['to']);$x++){
        
$string .= substr($_POST['to'],$x,1)."%";
    }
    
$sql "SELECT name,login FROM accounts WHERE name LIKE '".addslashes($string)."'";
    
$result db_query($sql);
    if (
db_num_rows($result)==1){
        
$row db_fetch_assoc($result);
        
output("<form action='bank.php?op=gemtrans3' method='POST'>",true);
        
output("<tt><font size='3'>Verschicke 1 Edelstein für eine Versandgebühr von 100 Caro an $row[name].</font></tt>`0`n",true);
        
output("<input type='hidden' name='to' value='".HTMLEntities($row['login'])."'><input type='submit' class='button' value='Versand abschließen'></form>",true);
        
addnav("","bank.php?op=gemtrans3");
    }elseif(
db_num_rows($result)>100){
        
output("<tt><font size='3'>ERROR! Zu viele mögliche Empfänger! Bitte den Namen etwas genauer eingeben:`n`n",true);
        
output("<form action='bank.php?op=gemtrans2' method='POST'>Versende 1 Edelstein a<u>n</u>: <input name='to' accesskey='n' value='"$_POST['to'] . "'> `n(Unvollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgefordert).</font></tt>`0`n",true);
        
output("<input type='submit' class='button' value='Vorschau'></form>",true);
        
addnav("","bank.php?op=gemtrans2");
    }elseif(
db_num_rows($result)>1){
        
output("<form action='bank.php?op=gemtrans3' method='POST'>",true);
        
output("<tt><font size='3'>Versende 1 Edelstein für eine Versandgebühr von 100 Caro an <select name='to' class='input'></font></tt>`0",true);
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
output("<option value=\"".HTMLEntities($row['login'])."\">".preg_replace("'[`].'","",$row['name'])."</option>",true);
        }
        
output("</select><input type='submit' class='button' value='Versand abschließen'></form>",true);
        
addnav("","bank.php?op=gemtrans3");
    }else{
        
output("<tt><font size='3'>ERROR! Es konnte niemand mit dem Namen gefunden werden. Bitte versuchen sie es noch einmal.</font></tt>`0",true);
    }
}else if(
$_GET['op']=="gemtrans3"){
    
output("<tt><font size='3'>`bVersand abschließen`b</font></tt>`0`n`n");
    
$sql "SELECT name,acctid,level,lastip,emailaddress,transferredtoday,uniqueid FROM accounts WHERE login='{$_POST['to']}'";
    
$result db_query($sql);
    if (
db_num_rows($result)==1){
        
$row db_fetch_assoc($result);
         if(
$row['level']<3){
            
output("<tt><font size='3'>Versand abgebrochen: {$row['name']} kann noch keine Edelsteine in Empfang nehmen. Level des Empfängers ist zu niedrig.</font></tt>`0",true);
        }else if(
$row['acctid']==$session['user']['acctid']){
            
output("<tt><font size='3'>Versand abgebrochen: Sie können sich nicht selbst etwas schicken.</font></tt>`0",true);
        }else if(
$row['transferredtoday']>=getsetting("transferreceive",3)){
            
output("<tt><font size='3'>Versand abgebrochen: {$row['name']} hat heute bereits zu viele Überweisungen oder Edelsteine erhalten.</font></tt>`0",true);
        } else if (
ac_check($row)){
//        } else if ($session[user][emailaddress]==$row[emailaddress] && $row[emailaddress]){
            
output("<tt><font size='3'>`\$`bVersand abgebrochen:`b Du darfst keine Edelsteine an deine eigenen Charaktere versenden!</font></tt>`0",true);
        }else{
            
//debuglog("transferred 1 gem to", $row['acctid']);
            
$session[user][gold]-=100;
            
$session[user][gems]-=1;
            if (
$session[user][gold]<0){ //withdraw in case they don't have enough on hand.
                
$session[user][goldinbank]+=$session[user][gold];
                
$session[user][gold]=0;
            }
            
$sql "UPDATE accounts SET gems=gems+1,transferredtoday=transferredtoday+1  WHERE acctid='{$row['acctid']}'";
            
db_query($sql);
            
output("<tt><font size='3'>Versand erfolgreich!</font></tt>`0",true);
            
systemmail($row['acctid'],"`#Edelstein erhalten!`0","`&{$session['user']['name']}`x war so freundlich und hat dir `#1 Edelstein`x geschenkt!");
        }
    }else{
        
output("<tt><font size='3'>Versand fehlgeschlagen. Bitte versuchen sie es noch einmal.</font></tt>`0",true);
    }




}else if(
$HTTP_GET_VARS[op]=="deposit"){
  
output("<tt><font size='3'>`bGeld einzahlen`b:`n`n",true);
  
output("<form action='bank.php?op=depositfinish' method='POST'>Aktueller Kontostand: ".($session[user][goldinbank]>=0?"+":"-")." ".abs($session[user][goldinbank])." Caro.`n`n",true);
    
output("Wieviel ".($session[user][goldinbank]>=0?"einzahlen":"zurückzahlen")."?:  <input id='input' name='amount' width=5 accesskey='v'> <input type='submit' class='button' value='Einzahlen'>`n(`iGeben sie 0 oder gar nichts ein, um alles einzuzahlen.`i)</form></font></tt>`0",true);
    
output("<script language='javascript'>document.getElementById('input').focus();</script>",true);
  
addnav("","bank.php?op=depositfinish");
}else if(
$HTTP_GET_VARS[op]=="depositfinish"){
    
$_POST[amount]=abs((int)$_POST[amount]);
    if (
$_POST[amount]==0){
        
$_POST[amount]=$session[user][gold];
    }
    if (
$_POST[amount]>$session[user][gold]){
        
output("<tt><font size='3'>`\$ERROR: Soviel Caro sind nicht vorhanden.</font></tt>`0`n`n",true);
        
output("<tt><font size='3'>Verfügbares Barguthaben: ".$session[user][gold]." Caro</font></tt>`0",true);
    }else{
        
output("<tt><font size='3'>$_POST[amount] Caro auf ihr Konto eingezahlt.`n",true);
        
//debuglog("deposited " . $_POST[amount] . " gold in the bank");
        
$session[user][goldinbank]+=$_POST[amount];
        
$session[user][gold]-=$_POST[amount];
        
output("Aktueller Kontostand beträgt nun: ".($session[user][goldinbank]>=0?"+":"-")." ".abs($session[user][goldinbank])." Caro`n
               Aktuelles Barguthaben beträgt nun: "
.$session[user][gold]." Caro</font></tt>`0",true);
    }
}else if(
$_GET[op]=="borrow"){
    if (
$session['user']['reputation']<-35){
        
output("<tt><font size='3'>`bKredit aufnehmen`b:</font></tt>`0`n`n",true);
        
output("<tt><font size='3'>ERROR! Kredit aufgrund schlechten Ruifes verweigert!</font></tt>`0",true);
    }else{
        
$maxborrow $session[user][level]*getsetting("borrowperlevel",20);
        
output("<tt><font size='3'>`bKredit aufnehmen`b:</font></tt>`0`n`n",true);
          
output("<form action='bank.php?op=withdrawfinish' method='POST'><tt><font size='3'>Aktueller Kontostand: ".($session[user][goldinbank]>=0?"+":"-")." ".abs($session[user][goldinbank])." Caro`n`n",true);
          
output("Maximal $maxborrow Caro stehen auf ihrer stufe als Kredit zur Verfügung.`n
                Wieviel leihen?:    <input id='input' name='amount' width=5 accesskey='l'> <input type='hidden' name='borrow' value='x'><input type='submit' class='button' value='Leihen'>
                `n(Geld wird abgehoben bis das Konto leer ist. Der Restbetrag wird geliehen.)</form></font></tt>`0"
,true);
        
output("<script language='javascript'>document.getElementById('input').focus();</script>",true);
          
addnav("","bank.php?op=withdrawfinish");
    }
}else if(
$HTTP_GET_VARS[op]=="withdraw"){
    
output("<tt><font size='3'>`bGeld abheben`b:</font></tt>`0`n`n",true);
      
output("<form action='bank.php?op=withdrawfinish' method='POST'><tt><font size='3'>Aktueller Kontostand: ".$session[user][goldinbank]." Caro`n`n",true);
      
output("Wieviel abheben?: <input id='input' name='amount' width=5 accesskey='b'> <input type='submit' class='button' value='Abheben'>
            `n(`iGeben sie 0 oder gar nichts ein, um alles abzuheben.`i)</form></font></tt>`0"
,true);
    
output("<script language='javascript'>document.getElementById('input').focus();</script>",true);
      
addnav("","bank.php?op=withdrawfinish");
}else if(
$HTTP_GET_VARS[op]=="withdrawfinish"){
    
$_POST[amount]=abs((int)$_POST[amount]);
    if (
$_POST[amount]==0){
        
$_POST[amount]=abs($session[user][goldinbank]);
    }
    if (
$_POST[amount]>$session[user][goldinbank] && $_POST[borrow]=="") {
        
output("<tt><font size='3'>`\$ERROR: Nicht genug Guthaben auf dem Konto.`0`n`n",true);
        
output("Gewünschter Betrag: $_POST[amount]
                `nVerfügbarer Betrag: "
.$session[user][goldinbank]." Caro</font></tt>`0",true);
    }else if(
$_POST[amount]>$session[user][goldinbank]){
        
$lefttoborrow $_POST[amount];
        
$maxborrow $session[user][level]*getsetting("borrowperlevel",20);
        if (
$lefttoborrow<=$session[user][goldinbank]+$maxborrow){
            if (
$session[user][goldinbank]>0){
                
output("<tt><font size='3'>Abgehobener Betrag: ".$session[user][goldinbank]." Caro</font></tt>`0`n",true);
                
$lefttoborrow-=$session[user][goldinbank];
                
$session[user][gold]+=$session[user][goldinbank];
                
$session[user][goldinbank]=0;
                
//debuglog("withdrew " . $_POST[amount] . " gold from the bank");
            
}else{
                
//output("<tt><font size='3'>Gewünschter Kredit:</font></tt>`0",true);
            
}
            if (
$lefttoborrow-$session[user][goldinbank] > $maxborrow){
                
output("<tt><font size='3'>Gewünschter Kredit: $lefttoborrow Caro`n
                Verfügbarer Kredit: $maxborrow Caro</font></tt>`0"
,true);
            }else{
                
output("<tt><font size='3'>Aufgenommener Kredit: $lefttoborrow Caro</font></tt>`0",true);
                
$session[user][goldinbank]-=$lefttoborrow;
                
$session[user][gold]+=$lefttoborrow;
                
//debuglog("borrows $lefttoborrow gold from the bank");
            
}
        }else{
            
output("<tt><font size='3'>Verfügbares Kontoguthaben: {$session[user][goldinbank]} Caro`n
                    Gewünschter Kredit: "
.($lefttoborrow-$session[user][goldinbank])." Caro`n
                    Verfügbarer Kredit: $maxborrow Caro</font></tt>`0"
,true);
        }
    }else{
        
output("<tt><font size='3'>Abgehobener Betrag: $_POST[amount] Caro</font></tt>`0`n",true);
        
$session[user][goldinbank]-=$_POST[amount];
        
$session[user][gold]+=$_POST[amount];
        
//debuglog("withdrew " . $_POST[amount] . " gold from the bank");
        
output("<tt><font size='3'>Aktueller Kontostand: ".$session[user][goldinbank]." Caro`n
                Aktuelles Barguthaben: "
.$session[user][gold]." Caro</font></tt>`0",true);
    }
    }else if(
$_GET['op']=="depositall"){
$session['user']['goldinbank']+=$session['user']['gold'];
$session['user']['gold']=0;
output("<tt><font size='3'>`bAlles einzahlen`b:`n`n",true);
output("Aktueller Kontostand: ".$session['user']['goldinbank']." Caro`n
        Aktuelles Barguthaben: "
.$session['user']['gold']." Caro</font></tt>`0",true);
}else if(
$_GET['op']=="drawall"){
$session['user']['gold']+=$session['user']['goldinbank'];
$session['user']['goldinbank']=0;
output("<tt><font size='3'>`bAlles abheben`b:`n`n",true);
output("Aktuelles Barguthaben: ".$session['user']['gold']." Caro`n
        Aktueller Kontostand: "
.$session['user']['goldinbank']." Caro</font></tt>`0",true);
}

addnav("Wege");
addnav("Einkaufsstraße","passage.php");
if (
$session[user][goldinbank]>=0){
addnav("Aktionen");
    
addnav("Abheben","bank.php?op=withdraw");
    
addnav("`^>>Alles abheben`0","bank.php?op=drawall");
    
addnav("Einzahlen","bank.php?op=deposit");
    
addnav("`^>>Alles einzahlen`0","bank.php?op=depositall");
    if (
getsetting("borrowperlevel",20)) addnav("Kredit aufnehmen","bank.php?op=borrow");
}else{
    
addnav("Schulden begleichen","bank.php?op=deposit");
    if (
getsetting("borrowperlevel",20)) addnav("Mehr leihen","bank.php?op=borrow");
}
if (
getsetting("allowgoldtransfer",1)){
    if (
$session[user][level]>=getsetting("mintransferlev",3) || $session[user][dragonkills]>0){
        
addnav("Caro überweisen","bank.php?op=transfer");
    }
    
addnav("Edelstein versenden","bank.php?op=gemtrans");
}

page_footer();

?>