LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /list.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: /list.php

<?php
/*
info: if anything gets changed, add comments! or I'll punch you in the face over the internet !!!

changes:
2005-xx-yy    aragon    shop-description for chars (juwe, wache, architekt, admin)
2013-09-19    aragon    repaired the links for this ... it didn't look perfect or so ...
-
2013-09-19    aragon    added: logoff for grotto ... shameless copied from codes, written for arania-logd
2021-06-05  aragon  bugfix php8
2024-05-04  aragon  code quality, sql optimization
*/
require_once "common.php";

$suLevel $session['user']['superuser'] ?? 0;
$isLoggedIn $session['user']['loggedin'] ?? false;

if (
$isLoggedIn) {
  
checkday();
  if (
$session['user']['alive']) {
    
addnav("Zurück zum Dorf""village.php");
  } else {
    
addnav("Zurück zu den Schatten""shades.php");
  }
  
addnav("Gerade Online""list.php");
} else {
  
addnav("Login Seite""index.php");
  
addnav("Gerade Online""list.php");
}
page_header("Kämpferliste");

$desc $_GET['desc'] ?? "";

if (
$desc == "arch") {
  
output("`c`tArchitekten`c`n");
  
output("`tDie Architekten dieser Welt gehören zum Team der Admins und");
  
output("`tkümmern sich um die Instandhaltung der Gebäude, Käferbekämpfung sowie um Neubauten.`n");
  
output("`7Admins mit dem Aufgabenbereich 'Scripts'`n`0");
}
if (
$desc == "invi") {
  
output("`c`tUnsichtbarkeit`c`n");
  
output("`tDie Unsichtbarkeit dient dazu, dass Admins und Juweliere sich unerkannt auf Pandea bewegen können.`n");
  
output("`7Der Unsichtbarkeitsmodus ist nur für Admins und Juweliere verfügbar.");
  
output("`7Für normale User, also `bNicht-Admins`b ist die Spalte \"Unsichtbar\" nicht sichtbar.`n`0");
}
if (
$desc == "juwe") {
  
output("`c`tJuweliere`c`n");
  
output("`tJuweliere dieser Welt sind diejenigen, die als einzige die Erlaubnis haben,");
  
output("`teuch im Juweliergeschäft in der Handelstraße Edelsteine abzukaufen oder zu verkaufen.`n`0");
}
if (
$desc == "wach") {
  
output("`c`tStadtwachen`c`n");
  
output("`tDie Stadtwachen achten u.a. darauf, dass Gespräche regelkonform ablaufen und kein Dieb, der den Juwelieren");
  
output("`tEdelsteine oder Gold gestohlen hat, ungestraft davonkommt. Eine Stadtwache hat die Möglichkeit, bestimmte Kommentare eines");
  
output("`tDorfbewohners zu löschen `tund Bewohner an den Pranger zu stellen.`n`0");
}
if (
$desc == "admi") { // && $session['user']['superuser']>=3){
  
output("`c`tAdmins`c`n");
  
output("`tAdmins sind in dieser Welt wahrhaft allmächtig - und damit sollten eigentlich schon alle Fragen beantwortet sein!`n`0");
}
if (
$desc == "prie") {
  
output("`c`tPriester`c`n");
  
output("`tPriester sind diejenigen, die sich ganz in den Dienst ihrer Gottheit gestellt haben. Sie kümmern sich um die anderen Gläubigen,");
  
output("`tverbreiten ihren Glauben weiter und sind befugt, den Bund der Ehe zwischen zwei Liebenden zu schließen.`n`0");
}
$playersperpage 50;

$andInvisible = ($suLevel >= "" " AND invisible < 2 ");

$sql "SELECT count(acctid) AS c FROM accounts WHERE locked=0 " $andInvisible;
$result db_query($sql);
$row db_fetch_assoc($result);
$totalplayers $row['c'];
$op $_GET['op'] ?? "";
$name $_POST['name'] ?? "";
$page = (int)($_GET['page'] ?? 0);

$pageoffset 0;
$from 0;
$to 0;
$limit "";

if (
$op == "search") {
  
$search "%";
  for (
$x 0$x strlen($name); $x++) {
    
$search .= substr($name$x1) . "%";
  }
  
$search " AND name LIKE '" addslashes($search) . "' ";
  
//addnav("List Warriors","list.php");
} else {
  
$pageoffset $page;
  if (
$pageoffset 0) {
    
$pageoffset--;
  }
  
$pageoffset *= $playersperpage;
  
$from $pageoffset 1;
  
$to min($pageoffset $playersperpage$totalplayers);

  
$limit " LIMIT $pageoffset,$playersperpage ";
}
addnav("Seiten");
for (
$i 0$i $totalplayers$i += $playersperpage) {
  
addnav("Seite " . ($i $playersperpage 1) . " (" . ($i 1) . "-" min($i $playersperpage$totalplayers) . ")""list.php?page=" . ($i $playersperpage 1));
}

// Order the list by level, dragonkills, name so that the ordering is total!
// Without this, some users would show up on multiple pages and some users
// wouldn't show up
if ($page == && $op == "") {
  
output("`n`c`bDiese Krieger sind gerade online`b`c");

  
// 2013-09-09 ... invisibility modified ... unneeded things removed ... makes the code much faster!
  
$sql "SELECT a.*, r.colorname FROM accounts a
  LEFT JOIN race r on r.name = a.race
  WHERE locked=0 AND loggedin=1 AND laston>'" 
date("Y-m-d H:i:s"strtotime("-" getsetting("LOGINTIMEOUT"900) . " seconds")) . "' " $andInvisible " ORDER BY level DESC, dragonkills DESC, login ASC";
} else {
  
output("`n`c`bKrieger in dieser Welt (Seite " . ($pageoffset $playersperpage 1) . ": $from-$to von $totalplayers)`b`c");
  
$sql "SELECT a.*, r.colorname FROM accounts a
  LEFT JOIN race r on r.name = a.race
  WHERE locked=0 " 
. ($search ?? " ") . " " $andInvisible " ORDER BY level DESC, dragonkills DESC, login ASC " $limit;
}

if (
$isLoggedIn) {
  
output("<form action='list.php?op=search' method='POST'>Nach Name suchen: <input name='name'><input type='submit' class='button' value='Suchen'></form>"true);
  
addnav("""list.php?op=search");
}
output("`n");
$result db_query($sql) or die(sql_error($sql));
$max db_num_rows($result);
if (
$max 100) {
  
output("`\$Es treffen zu viele Namen auf diese Suche zu. Nur die ersten 100 werden angezeigt.`0`n");
}

output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>"true);

output("<tr class='trhead'><td><b>Level</b></td><td><b>Name</b></td><td><b>Rasse</b></td><td><b><img src=\"images/female.gif\" />/<img src=\"images/male.gif\" /></b></td><td><b>Ort</b></td><td><b>Status</b></td><td><b>Besondere Angaben</b></td></td>"true);
if (
$suLevel >= 3) {
  
addnav("""list.php?desc=invi");
  
output("<td><b><a href=\"list.php?desc=invi\">`&Unsichtbar*</a></b></td>"true);
  
output("<td><b>`&Tools*`0</b></td>"true);
}
output("<td><b>Zuletzt da</b></tr>"true);

for (
$i 0$i $max$i++) {
  
$row db_fetch_assoc($result);
  
output("<tr class='" . ($i "trdark" "trlight") . "'><td>"true);
  
output("`^{$row['level']}`0");
  
output("</td><td>"true);
  if (
$isLoggedIn) {
    
output("<a href=\"mail.php?op=write&to=" rawurlencode($row['login']) . "\" target=\"_blank\" onClick=\"" popup("mail.php?op=write&to=" rawurlencode($row['login']) . "") . ";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0' /></a>"true);
    
output("<a href='bio.php?char=" rawurlencode($row['login']) . "&ret=" URLEncode($_SERVER['REQUEST_URI']) . "'>"true);
    
addnav("""bio.php?char=" rawurlencode($row['login']) . "&ret=" URLEncode($_SERVER['REQUEST_URI']) . "");
  }
  
output("`" . ($row['acctid'] == getsetting("hasegg"0) ? "^" "&") . "{$row['name']}`0");
  if (
$isLoggedIn) {
    
output("</a>"true);
  }
  
output("</td><td>"true);

  
output($row['colorname'] . '`0');
  
output("</td><td align=\"center\">"true);
  
output($row['sex'] ? "<img src=\"images/female.gif\" />" "<img src=\"images/male.gif\" />"true);
  
output("</td><td>"true);
  
$loggedin = (date("U") - strtotime($row['laston']) < getsetting("LOGINTIMEOUT"900) && $row['loggedin']);
  
$invisible $row['invisible'];
  
// ** 2013-09-19 by aragon    invisible and location stuff modified ... shameless copy of my arania-logd server ;D
  /*    if ($row['location']==0){
        if ($row['invisible']<1){
            output($loggedin?"`#Online`0":"`3Die Felder`0");
        }else{
            output("`3Die Felder`0");
        }
    }
*/
  
switch ($row['location']) {
    default:
    case 
'0':
      
output(($loggedin && !$row['invisible']) ? "`#Online`0" "`3Die Felder`0");
      break;
    case 
'1':
      
output("`3Zimmer in Kneipe`0");
      break;
    case 
'2':
      
output("`3Im Haus`0");
      break;
    case 
'9':
      
output("`3Am Pranger`0");
      break;
    case 
'100':
      
output("`^An einem unerreichbaren Ort`0");
      break;
  }
  
output("</td><td>"true);
  if (
$invisible 1) {
    
output($row['alive'] ? "`1Lebt`0" "`4Tot`0");
  } else {
    
output("`4Tot`0");
  }
  
output("</td><td>"true);
  
$sonderinfos "";
  
$admin 0;
  
$wache 0;
  
$juwelier 0;
  
$architekt 0;
  
$priester 0;
  
/* Angel vorübergehend als Architektin rausgenommen, bis sie wieder Zeit hat
        if ($row['acctid']==3425){
                $architekt=1;
        }
        */
  
if ($row['acctid'] == 8963) {
    
$priester 1;
  }
  if (
$row['superuser'] > 2) {
    
$admin 1;
  }
  
$acc $row['acctid'];
  
$sqlx "SELECT * FROM shops_owner WHERE acctid = '" $acc "'";
  
$resultx db_query($sqlx);
  
#        for ($x=0;$x<db_num_rows($resultx);$x++){
  // ** 2013-09-19 by aragon ... why count shit and then ask for rows? ... "while" instead of it is much faster in this case
  
$juwelier 0;
  
$wache 0;
  while (
$row2 db_fetch_assoc($resultx)) {
    if (
$row2['shopid'] == '1') {
      
$juwelier 1;
    }
    if (
$row2['shopid'] == '2') {
      
$wache 1;
    }
  }
  
// 2013-09-19 by aragon ... i wrote this here so shitty, i had to modify it .. i hope it looks better afterwards
  
$s "";
  if (
$row['sex'] == 1) {
    
$s "in";
  }
  
//if ($admin==1) $sonderinfos="<a href='list.php?desc=admi&page=".$page."'>Admin</a>";
  
if ($wache == 1) {
    
$sonderinfos .= " <a href='list.php?desc=wach&page=" $page "'>Stadtwache</a> ";
  }
  if (
$juwelier == && $row['acctid'] != "4980") {
    
$sonderinfos .= " <a href='list.php?desc=juwe&page=" $page "'>Juwelier" $s "`0</a> ";
  }
  if (
$architekt == 1) {
    
$sonderinfos .= " <a href='list.php?desc=arch&page=" $page "'>Architekt" $s "`0</a> ";
  }
  if (
$priester == 1) {
    
$sonderinfos " <a href='list.php?desc=prie&page=" $page "'>Priester" $s "</a> ";
  }
  
addnav("""list.php?desc=arch&page=" $page);
  
addnav("""list.php?desc=juwe&page=" $page);
  
addnav("""list.php?desc=wach&page=" $page);
  
//addnav("","list.php?desc=admi&page=".$page);
  
addnav("""list.php?desc=prie&page=" $page);
  
output($sonderinfostrue);
  
output("</td><td>"true);

  if (
$suLevel >= 3) {
    
addnav("""list.php?desc=invi&page=" $page);
    
output($row['invisible'] ? "<a href=\"list.php?desc=invi\">Unsichtbar</a>`0" ""true);
    
output("</td><td>"true);
    
output("<script language='JavaScript'>
                multi = null;
                document.onmousemove = updatemulti;
                function updatemulti(e) {
                        x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
                        y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
                        if (multi != null) {
                                multi.style.left = (x + 5) + 'px';
                                multi.style.top         = (y + 5) + 'px';
                        }
                }
                function showmulti(id) {
                        multi = document.getElementById(id);
                        multi.style.display = 'block'
                }
                function hidemulti() {
                        multi.style.display = 'none';
                }
                </script>"
true);
    
$multi '';
    
$sqlm "SELECT name FROM accounts WHERE lastip='" $row['lastip'] . "' AND acctid!={$row['acctid']}";
    
$resultm db_query($sqlm) or die(sql_error($sqlm));
    
$m db_num_rows($resultm);
    if (
$m 0) {
      
$multi .= "`^Multis nach IP:`7`n";
      for (
$h 0$h $m$h++) {
        
$rowm db_fetch_assoc($resultm);
        
$multi .= "{$rowm['name']}`7, ";
      }
    }
    
$sqlm2 "SELECT name FROM accounts WHERE uniqueid='" $row['uniqueid'] . "' AND acctid!={$row['acctid']}";
    
$resultm2 db_query($sqlm2) or die(sql_error($sqlm2));
    
$m2 db_num_rows($resultm2);
    if (
$m2 0) {
      
$multi .= "`n`^Multis nach ID:`7`n";
      for (
$t 0$t $m2$t++) {
        
$rowm2 db_fetch_assoc($resultm2);
        
$multi .= "{$rowm2['name']}`7, ";
      }
    }
    if (
$m == && $m2 == 0) {
      
$multi "`^keine Multis";
    }
    
output("<div style='width:260;' class='tooltip' id=" $row['acctid'] . ">$multi</div>"true);
    
output("`0[<a onMouseOver=\"showmulti('{$row['acctid']}')\" onMouseOut=\"hidemulti()\">Multis</a>`0 |"true);
    
output("<a href='user.php?op=edit&userid={$row['acctid']}'>Edit</a>`0]"true);
    
addnav("""su_user.php?op=edit&userid={$row['acctid']}");
    
output("</td><td>"true);
  }

  
$laston laston($row);

  
output($laston);
  
output("</td></tr>"true);
}
output("</table>"true);
if (
$suLevel >= 3) {
  
output("`n`n`n`&`i*Sowohl diese Spalten als auch dieser Text hier sind nur für Admins sichtbar.`i");
}
page_footer();