LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /logd/bank.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /logd/bank.php

<?php

// 22062004

require_once "common.php";
page_header("Bank");
output("`c`b`BB`}an`Bk`b`c`n");
if (
$HTTP_GET_VARS[op]==""){
  
checkday();
  
output("`c<img src='images/bankw.jpg'>`c"true);
  
output("`n`TE`ti`en`ê kleiner Mann in einem makellosen Anzug mit Lesebrille grüßt dich.`n`n");
  
output("\"`5Hallo guter Mann,`ê\" grüßt du zurück, \"`5Kann ich meinen Kontostand an diesem wunderschönen Tag einsehen?`ê\"`n`n");
  
output("Der Bankier murmelt \"`3Hmm, ".$session[user][name]."`3, mal sehen.....`ê\" während er die Seiten in seinem Buch ");
  
output("sorgfältig überfliegt.  ");
    if (
$session[user][goldinbank]>=0){
        
output("\"`3Aah ja, hier ist es. Du hast  `^".$session[user][goldinbank]." Gold`3 bei unserer ");
        
output("renommierten Bank.  Kann ich sonst noch etwas für dich tun?`ê\"");
    }else{
        
output("\"`3Aah ja, hier ist es.  Du hast `&Schulden`3 in Höhe von `^".abs($session[user][goldinbank])." Gold`3 bei unserer ");
        
output("renommierten Bank.  Kann ich sonst noch etwas für dich tun?`ê\"`n`n(`iSchulden verfallen durch einen Drachenkill nicht!`i)");
    }
}else if(
$_GET['op']=="transfer"){
    
output("`b`TG`to`el`êd überweisen`b:`n");
    if (
$session[user][goldinbank]>=0){
        
output("`êDu kannst maximal `^".getsetting("transferperlevel",25)."`ê Gold pro Level des Empfängers überweisen.`n");
        
$maxout $session['user']['level']*getsetting("maxtransferout",25);
        
$minfer round(getsetting("transferperlevel",25)/10*((int)$session['user']['level']/2));
        
output("`TD`tu`e m`êusst mindestens `^$minfer`ê Gold überwei`es`te`Tn.`n");
        
output("`TD`tu`e k`êannst nicht mehr als insgesamt `^$maxout`ê Gold überwei`es`te`Tn.");
        if (
$session['user']['amountouttoday'] > 0) {
            
output("(`TD`tu`e h`êast heute schon `^{$session['user']['amountouttoday']}`ê Gold überwie`es`te`Tn.)`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("A<u>n</u>: <input name='to' accesskey='n'> (`TU`tn`ev`êollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgeford`ee`tr`Tt).`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("`TD`te`er`ê kleine alte Bankier weigert sich, Geld für jemanden zu überweisen, der Schulden `eh`ta`Tt.");
    }
}else if(
$_GET['op']=="transfer2"){
    
output("`b`TÜ`tb`ee`êrweisung bestätigen`b:`n");
    
$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("`TÜ`tb`ee`êrweise `^$amt`ê an `&$row[name]`T.");
        
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("`TD`te`er`ê Bankier schaut dich überfordert an und schlägt dir vor, deine Suche vielleicht etwas mehr einzuengen, indem du den Namen genauer festle`eg`ts`Tt.`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("A<u>n</u>: <input name='to' accesskey='n' value='"$_POST['to'] . "'> (`TU`tn`ev`êollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgeford`ee`tr`Tt).`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("`TÜ`tb`ee`êrweise `^$amt`6 an <select name='to' class='input'>",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("`TE`ts`e k`êonnte niemand mit diesem Namen gefunden werden. Bitte versuchs noch`em`ta`Tl.");
    }
}else if(
$_GET['op']=="transfer3"){
    
$amt abs((int)$_POST['amount']);
    
output("`b`TÜ`tb`ee`êrweisung abschlie`eß`te`Tn`b`n");
    if (
$session[user][gold]+$session[user][goldinbank]<$amt){
        
output("`TW`ti`ee`ê willst du `^$amt`ê Gold überweisen, wenn du nur ".($session[user][gold]+$session[user][goldinbank])."`ê Gold h`ea`ts`Tt?");
    }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("`TD`ti`ee`ê Überweisung wurde nicht durchgeführt: Du darfst nicht mehr als `^$maxout`ê Gold pro Tag überwei`es`te`Tn.");
            }else if (
$maxtfer<$amt){
                
output("`TD`ti`ee`ê Überweisung wurde nicht durchgeführt: `&{$row['name']}`ê darf maximal `^$maxtfer`ê Gold empfan`eg`te`Tn.");
            }else if(
$row['transferredtoday']>=getsetting("transferreceive",3)){
                
output("`&{$row['name']}`ê hat heute schon zu viele Überweisungen oder Edelsteine erhalten. Du wirst bis morgen warten müs`es`te`Tn.");
            }else if(
$amt<$minfer){
                
output("`TD`tu`e s`êolltest etwas überweisen, das sich auch lohnt. Wenigstens `^$minfer`ê G`eo`tl`Td.");
            }else if(
$row['acctid']==$session['user']['acctid']){
                
output("`TD`tu`e k`êannst dir nicht selbst Gold überweisen. Das macht keinen S`ei`tn`Tn!");
             } else if (
ac_check($row)){
//             } else if ($session[user][emailaddress]==$row[emailaddress] && $row[emailaddress]){
                
output("`\$`bNicht erlaubt!!`b Du darfst kein Gold an deine eigenen Charaktere überweisen!");
            }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`tr`ea`ênsfer vollstän`ed`ti`Tg!");
                
//$session['user']['donation']+=1;
                
systemmail($row['acctid'],"`TD`tu`e h`êast eine Überweisung erhalten!`0","`&{$session['user']['name']}`ê hat dir `^$amt`ê Gold auf dein Konto überwie`es`te`Tn!");
            }
        }else{
            
output("`TD`ti`ee`ê Überweisung hat nicht geklappt. Bitte versuchs noch`em`ta`Tl.");
        }
    }



}else if(
$_GET['op']=="gemtrans"){
    
output("`b`TE`td`ee`êlstein versenden`b:`n");
    if ((
$session[user][gold]>=100 || $session[user][gold]+$session[user][goldinbank]>=100) && $session[user][gems]>0){
        
output("`TD`tu`e k`êannst `#1 Edelstein`ê für eine Versandgebühr von `^100 Gold`ê an einen beliebigen Charakter mit mindestens Level 3 verschen`ek`te`Tn.`n`n");
        
output("<form action='bank.php?op=gemtrans2' method='POST'>Einen Edelstein versenden a<u>n</u>: <input name='to' accesskey='n'> (`TU`tn`ev`êollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgeford`ee`tr`Tt).`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("`TD`te`er`ê kleine alte Bankier weigert sich, einen Edelstein kostenlos zu versenden.`nDu hast keine `^100`êG`eo`tl`Td!");
    } else {
        
output("`TD`te`er`ê kleine alte Bankier erklärt dir lange und umständlich, dass du keine Edelsteine verschenken kannst, wenn du keine h`ea`ts`Tt!");
    }
}else if(
$_GET['op']=="gemtrans2"){
    
output("`b`TV`te`er`êsand bestätigen`b:`n");
    
$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("`TV`te`er`êschenke `#1 Edelstein`ê für eine Versandgebühr von `^100 Gold`ê an `&$row[name]`T.");
        
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("`TD`te`er`ê Bankier schaut dich überfordert an und schlägt dir vor, deine Suche vielleicht etwas mehr einzuengen, indem du den Namen genauer festle`eg`ts`Tt.`n`n");
        
output("<form action='bank.php?op=gemtrans2' method='POST'>`êV`ee`trsende einen Edelst`te`ei`ên a<u>n</u>: <input name='to' accesskey='n' value='"$_POST['to'] . "'> (`TU`tn`ev`êollständige Namen werden automatisch ergänzt. Du wirst nochmal zum Bestätigen aufgeford`ee`tr`Tt).`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("`TV`te`er`êschenke `#1 Edelstein`ê für eine Versandgebühr von `^100 Gold`ê an <select name='to' class='input'>",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("`TE`ts`e k`êonnte niemand mit diesem Namen gefunden werden. Bitte versuchs noch`em`ta`Tl.");
    }
}else if(
$_GET['op']=="gemtrans3"){
    
output("`b`êV`ee`trsand abschlie`tß`ee`ên`b`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("`&{$row['name']}`ê kann noch keine Edelsteine in Empfang nehmen. Der Empfänger muss mindestens Level 3 s`ee`ti`Tn.");
        }else if(
$row['acctid']==$session['user']['acctid']){
            
output("`TD`tu`e k`êannst dir nicht selbst einen Edelstein schenken. Das macht keinen S`ei`tn`Tn!");
        }else if(
$row['transferredtoday']>=getsetting("transferreceive",3)){
            
output("`&{$row['name']}`ê hat heute schon zu viele Überweisungen oder Edelsteine erhalten. Du wirst bis morgen warten müs`es`te`Tn.");
        } else if (
ac_check($row)){
//        } else if ($session[user][emailaddress]==$row[emailaddress] && $row[emailaddress]){
            
output("`\$`bNicht erlaubt!!`b Du darfst keine Edelsteine an deine eigenen Charaktere versenden!");
        }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("`6Versand erfolgreich!");
            
systemmail($row['acctid'],"`TD`tu`e h`êast einen Edelstein geschenkt bekommen!`0","`&{$session['user']['name']}`ê war so freundlich und hat dir `#1 Edelstein`ê gesche`en`tk`Tt!");
        }
    }else{
        
output("`TD`te`er`ê Versand hat nicht geklappt. Bitte versuchs noch`em`ta`Tl.");
    }




}else if(
$HTTP_GET_VARS[op]=="deposit"){
  
output("<form action='bank.php?op=depositfinish' method='POST'>`TD`tu`e h`êast ".($session[user][goldinbank]>=0?"ein Guthaben von":"Schulden in Höhe von")." ".abs($session[user][goldinbank])." Gold bei der Bank.`n",true);
    
output("`êW`ei`te <u>v</u>iel ".($session[user][goldinbank]>=0?"einzahlen":"zurückzahlen").":  <input id='input' name='amount' width=5 accesskey='v'> <input type='submit' class='button' value='Einzahlen'>`n`6Gib 0 oder gar nichts ein, um alles einzuzahlen.`i</form>",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("`\$FEHLER: Soviel Gold hast du nicht dabei.`^`n`n");
        
output("`TD`tu`e s`êchmeißt deine `&".$session[user][gold]."`ê Gold auf den Schaltertisch und erklärst, dass du die ganzen `&$_POST[amount]`ê Gold einzahlen möcht`ee`ts`Tt.");
        
output("`n`n`TD`te`er`ê kleine alte Mann schaut dich nur verständnislos an. Durch diesen seltsamen Blick verunsichert, zählst du noch einmal nach und erkennst deinen Irrtum. Verdammt, wozu soll ein Krieger rechnen kön`en`te`Tn?");
    }else{
        
output("`b`TD`tu`e z`êahlst `&$_POST[amount]`ê Gold auf dein Konto `ee`ti`Tn. ");
        
//debuglog("deposited " . $_POST[amount] . " gold in the bank");
        
$session[user][goldinbank]+=$_POST[amount];
        
$session[user][gold]-=$_POST[amount];
        
output("`TD`tu`e h`êast damit ".($session[user][goldinbank]>=0?"ein Guthaben von":"Schulden in Höhe von")." `&".abs($session[user][goldinbank])."`ê Gold auf deinem Konto und `&".$session[user][gold]."`ê Gold hast du bei `ed`ti`Tr.`b");
    }
}else if(
$_GET[op]=="borrow"){
    if (
$session['user']['reputation']<-35){
        
output("`TM`ti`es`êstrauisch schaut dich der kleine Kerl eine Weile an. Dann, als ob er dein Gesicht erkannt hätte, atmet er ein und erklärt dir vorsichtig, dass er es nicht für klug hält, Leuten von deinem Schlag Geld zu leihen. Offenbar ist ihm dein schlechter Ruf zu Ohren gekommen und ist nun um den Ruf (und das Gold) seiner Bank besor`eg`tt.`T..");
    }else{
        
$maxborrow $session[user][level]*getsetting("borrowperlevel",20);
          
output("<form action='bank.php?op=withdrawfinish' method='POST'>Du hast ".($session[user][goldinbank]>=0?"ein Guthaben von":"Schulden in Höhe von")." ".abs($session[user][goldinbank])." Gold bei der Bank.`n",true);
          
output("`TW`ti`ee`êviel <u>l</u>eihen (mit deinem Level kannst du maximal $maxborrow 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(Gold wird abgehoben, bis dein Konto leer ist. Der Restbetrag wird gelie`eh`te`Tn.)</form>",true);
        
output("<script language='javascript'>document.getElementById('input').focus();</script>",true);
          
addnav("","bank.php?op=withdrawfinish");
    }
}else if(
$HTTP_GET_VARS[op]=="withdraw"){
      
output("<form action='bank.php?op=withdrawfinish' method='POST'>Du hast ".$session[user][goldinbank]." Gold bei der Bank.`n",true);
      
output("`TW`ti`ee`êviel a<u>b</u>heben? <input id='input' name='amount' width=5 accesskey='b'> <input type='submit' class='button' value='Abheben'>`n`êGib 0 oder gar nichts ein, um alles abzuhe`eb`te`Tn.`i</form>",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("`\$FEHLER: Nicht genug auf dem Konto.`^`n`n");
        
output("`TN`ta`ec`êhdem du darüber informiert wurdest, dass du `&".$session[user][goldinbank]."`ê Gold auf dem Konto hast, erklärst du dem Männlein mit der Lesebrille, dass du gerne `&$_POST[amount]`ê davon abheben würd`ee`ts`Tt.");
        
output("`n`n`TD`te`er`ê Bankier schaut dich bedauernd an und erklärt dir die Grundlagen der Mathematik. Nach einer Weile verstehst du deinen Fehler und würdest es gerne nochmal versuc`eh`te`Tn.");
    }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("`TD`tu`e n`êimmst deine verbleibenden `^".$session[user][goldinbank]."`ê Gold und ");
                
$lefttoborrow-=$session[user][goldinbank];
                
$session[user][gold]+=$session[user][goldinbank];
                
$session[user][goldinbank]=0;
                
//debuglog("withdrew " . $_POST[amount] . " gold from the bank");
            
}else{
                
output("`TD`tu ");
            }
            if (
$lefttoborrow-$session[user][goldinbank] > $maxborrow){
                
output("`êfragst, ob du `^$lefttoborrow`ê Gold leihen kannst. Der kleine Mann informiert dich darüber, dass er dir in deiner gegenwärtigen Situation nur `^$maxborrow`ê Gold geben k`ea`tn`Tn.");
            }else{
                
output("`eleihst dir `^$lefttoborrow`ê G`eo`tl`Td.");
                
$session[user][goldinbank]-=$lefttoborrow;
                
$session[user][gold]+=$lefttoborrow;
                
//debuglog("borrows $lefttoborrow gold from the bank");
            
}
        }else{
            
output("`TM`ti`et`ê den schlappen `^{$session[user][goldinbank]}`ê Gold auf deinem Konto bittest du um einen Kredit von `^".($lefttoborrow-$session[user][goldinbank])."`ê Gold, aber
            der kurze kleine Mann informiert dich darüber, dass du mit deinem Level höchstens `^$maxborrow`ê Gold leihen kan`en`ts`Tt."
);
        }
    }else{
        
output("`b`TD`tu`e h`êast `&$_POST[amount]`ê Gold von deinem Bankkonto abgeho`eb`te`Tn. ");
        
$session[user][goldinbank]-=$_POST[amount];
        
$session[user][gold]+=$_POST[amount];
        
//debuglog("withdrew " . $_POST[amount] . " gold from the bank");
        
output("`TD`tu`e h`êast damit `&".$session[user][goldinbank]."`ê Gold auf deinem Konto und `&".$session[user][gold]."`ê Gold hast du bei `ed`ti`Tr.`b");
    }
}
addnav("`êZ`eurück zur Handelsstraß`êe","handelsstrasse.php");
if (
$session[user][goldinbank]>=0){
    
addnav("`êA`ebhebe`ên","bank.php?op=withdraw");
    
addnav("`êE`einzahle`ên","bank.php?op=deposit");
    if (
getsetting("borrowperlevel",20)) addnav("`êK`eredit aufnehme`ên","bank.php?op=borrow");
}else{
    
addnav("`êS`echulden begleiche`ên","bank.php?op=deposit");
    if (
getsetting("borrowperlevel",20)) addnav("`êM`eehr leihe`ên","bank.php?op=borrow");
}
if (
getsetting("allowgoldtransfer",1)){
    if (
$session[user][level]>=getsetting("mintransferlev",3) || $session[user][dragonkills]>0){
        
addnav("`êG`eold überweise`ên","bank.php?op=transfer");
    }
    
addnav("`êE`edelstein versende`ên","bank.php?op=gemtrans");
}

page_footer();

?>