ER-Sourceviewer 2007 v2.0-rc

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
/*
* author: bibir (logd_bibir@email.de)
*      and Chaosmaker (webmaster@chaosonline.de)
*      for http://logd.chaosonline.de
*
* version: 1.2
*
*     a library with text from users to help other
*            a bit like faq
*
* details:
*  (15.11.04) start of idea
*  (15.01.05) project finished
*  (16.01.05) version 1.2: several minor bugfixes
*/

require_once "common.php";
checkday();
addcommentary();
if(!isset(
$_GET['op'])) $_GET['op']="";

addnav('Bibliothek');


$sql "SELECT count(bookid) AS anz FROM lib_books WHERE activated='1'";
$result db_query($sql) or die(db_error(LINK));
$books db_fetch_assoc($result);
page_header("Alte Bibliothek Kharmandors");
output("`n`c`b`9Die alte Bibliothek Kharmandors`0`b`c`n");
output("`c`bEs befinden sich aktuell " .($books['anz']==1?'einem Band':$books['anz']) ." in der Bibliothek.`b`c");
//.($books['anz']==1?'einem Band':$books['anz'].' Bänden')."
switch($_GET['op']){
case 
"browse":
        
addnav("H?Zurück in die Halle","library.php");
        
addnav("Buch einreichen","library.php?op=offer");
        
output("`tDu gehst durch die Regalreihen und siehst, dass alle Bücher ordentlich nach Themen einsortiert sind.`n
        Folgende Themen stehen derzeit zur Auswahl:`n`n"
);
        
$sql "SELECT t.*, COUNT(b.bookid) as anz FROM lib_themes t
                        LEFT JOIN lib_books b ON b.themeid=t.themeid AND b.activated='1'
                        GROUP BY themeid
                        ORDER BY listorder ASC"
;
        
$result db_query($sql) or die(db_error(LINK));
        
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trhead'><td>Thema</td><td>Bücher</td></tr>",true);
        
$bgclass '';
        
addnav("Themen");
        while (
$row db_fetch_assoc($result)) {
                
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
                if (
$row['anz']>0) {
                        
output("<tr class='$bgclass'><td><a href=\"library.php?op=theme&id=".$row['themeid']."\">",true);
                        
output($row['theme']);
                        
output("`0</a></td><td align='right'>".$row['anz']."</td></tr>",true);
                }
                else {
                        
output("<tr class='$bgclass'><td>",true);
                        
output($row['theme']);
                        
output("`0</td><td>kein Buch</td></tr>",true);
                }
                
addnav("","library.php?op=theme&id=".$row['themeid']);
                
addnav($row['theme'],"library.php?op=theme&id=".$row['themeid']);
        }
        
output("</table>",true);
        break;

case 
"theme":
        
addnav("H?Zurück in die Halle","library.php");
        
//addnav("Andere Regale","library.php?op=browse");
        
addnav("Buch einreichen","library.php?op=offer");

        
addnav("Themen");
        
$sql "SELECT themeid, theme FROM lib_themes ORDER BY listorder ASC";
        
$result db_query($sql) or die(db_error(LINK));
        while (
$row db_fetch_assoc($result)) {
                if (
$row['themeid']!=$_GET['id']) {
                        
addnav($row['theme'],"library.php?op=theme&id=".$row['themeid']);
                 }
                else {
                        
addnav($row['theme'],'');
                        
$thistheme $row['theme'];
                }
        }

        
output("`c`b".$thistheme."`0`b`c");
        
output("`n`6Zu diesem Thema stehen dir folgende Bücher zur Verfügung:`n`n");

        
$sql "SELECT title, bookid, author FROM lib_books
                        WHERE themeid="
.$_GET['id']." AND activated='1' ORDER BY listorder ASC";
        
$result db_query($sql) or die(db_error(LINK));
        
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trhead'><td>Titel</td><td>Autor</td></tr>",true);
        if (
db_num_rows($result)==0) {
                
output("<tr class='trdark'><td colspan='2'>Es gibt leider bisher noch keine Bücher zu diesem Thema.</td></tr>",true);
        }
        else {
                
addnav('Bücher');
                
$bgclass '';
                while (
$row db_fetch_assoc($result)) {
                        
$bgclass = ($bgclass=='trdark'?'trlight':'trdark');
                        
output("<tr class='$bgclass'><td><a href=\"library.php?op=book&bookid=".$row['bookid']."\">",true);
                        
output($row['title']);
                        
output("`0</a></td><td>",true);
                        
output($row['author']);
                        
output("`0</td></tr>",true);
                        
addnav("","library.php?op=book&bookid=".$row['bookid']);
                        
addnav($row['title'],'library.php?op=book&bookid='.$row['bookid']);
                }
        }
        
output("</table>",true);
        break;

case 
"book":
        
addnav("H?Zurück in die Halle","library.php");
        
//addnav("Ein anderes Thema","library.php?op=browse");

        
$sql "SELECT t.theme, b.themeid, b.title, b.book, b.author FROM lib_books b
                        LEFT JOIN lib_themes t USING(themeid)
                        WHERE bookid="
.$_GET['bookid'];
        
$result db_query($sql) or die(db_error(LINK));
        
$row db_fetch_assoc($result);

        
//addnav("R?Zurück ans Regal","library.php?op=theme&id=".$row['themeid']);
        
addnav("Buch einreichen","library.php?op=offer");

        
addnav("Themen");
        
$sql "SELECT themeid, theme FROM lib_themes ORDER BY listorder ASC";
        
$result db_query($sql) or die(db_error(LINK));
        while (
$row2 db_fetch_assoc($result)) {
                
addnav($row2['theme'],"library.php?op=theme&id=".$row2['themeid']);
        }

        
addnav('Bücher');
        
$sql 'SELECT title, bookid FROM lib_books WHERE themeid='.$row['themeid'].' AND activated="1" ORDER BY listorder ASC';
        
$result db_query($sql) or die(db_error(LINK));
        while (
$row2 db_fetch_assoc($result)) {
                if (
$row2['bookid']!=$_GET['bookid']) addnav($row2['title'],'library.php?op=book&bookid='.$row2['bookid']);
                else 
addnav($row2['title'],'');
        }

        
//nichts editierbar
        
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trdark'><td>Thema:</td><td>",true);
        
output($row['theme']);
        
output("`0</td></tr><tr class='trlight'><td>Titel:</td><td>",true);
        
output($row['title']);
        
output("`0</td></tr><tr class='trdark'><td>Autor:</td><td>",true);
        
output($row['author']);
        
output("`0</td></tr><tr class='trlight'><td colspan='2'>",true);
        
output(str_replace("\n",'`n',$row['book']));
        
output('</td></tr></table>',true);
        break;

case 
"offer":
        
addnav("H?Zurück in die Halle","library.php");
        if (
$_GET['subop']=="save" && !empty($_POST['title']) && !empty($_POST['book'])) {
                
addnav("Weiteres Buch schreiben","library.php?op=offer");
                
output("`tDein Buch wurde zum Druck eingereicht.`0");
                
// maximale sortiernummer holen
                
$sql 'SELECT MAX(listorder) AS maxorder FROM lib_books';
                
$result db_query($sql);
                
$row db_fetch_assoc($result);
                
$sql "INSERT INTO lib_books (themeid, acctid, author, title, book, listorder)
                        VALUES ('{$_POST['themeid']}', '{$session['user']['acctid']}', '{$session['user']['name']}', '{$_POST['title']}', '{$_POST['book']}', '{$row['maxorder']}')"
;
                
db_query($sql);
        }
        else {
                if (
$_GET['subop']=='save') {
                        
output('`c`$Wie soll ein Buch gedruckt werden, wenn nicht Titel und Inhalt existieren?`0`c`n`n');
                        
$_POST['title'] = str_replace('`','``',$_POST['title']);
                        
$_POST['book'] = str_replace('`','``',$_POST['book']);
                }
                else 
$_POST['title'] = $_POST['book'] = $_POST['themeid'] = '';
                
output("`tHier hast du die Möglichkeit, eigenes Wissen niederzuschreiben und anderen damit zur Verfügung zu stellen.`n`n
                Nun liegt es an dir, die Zeilen auf das Pergament zu bringen, die du dein Wissen nennst.`0"
);
                
output("<form action=\"library.php?op=offer&subop=save\" method='POST'>",true);
                
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999'><tr class='trdark'><td>Thema:</td><td><select name='themeid'>",true);
                
$sql2 "SELECT * FROM lib_themes ORDER BY listorder ASC";
                
$result2 db_query($sql2) or die(db_error(LINK));
                while (
$row2 db_fetch_assoc($result2)) {
                        
output("<option value='".$row2['themeid']."' ".($row2['themeid']==$_POST['themeid']?" selected='selected'":"").">".preg_replace('/`./','',$row2['theme'])."</option>",true);
                }
                
output("</select></td></tr>",true);
                
output("<tr class='trlight'><td>Titel:</td><td><input class='input' type='text' name='title' value='{$_POST['title']}' maxlength='50' size='50'></td></tr>",true);
                
output("<tr class='trdark'><td colspan='2'>Mein Wissen über dieses Thema:</td></tr>",true);
                
output("<tr class='trdark'><td colspan='2'><textarea name='book' class='input' cols='60' rows='10'>{$_POST['book']}</textarea></td></tr>",true);
                
output("<tr class='trlight'><td colspan='2'><input type='submit' class='button' value='Einreichen'></td></tr></table></form>",true);
                
addnav("","library.php?op=offer&subop=save");
        }
        break;

default:
        
output('`q`n`nDu stehst unter einem hohen steinernen Torbogen, der den Eingang zur Stadtbibliothek
                  Kharmandors markiert. Der Geruch nach alten, brüchigen Papyri steigt dir sofort in die Nase
                  als du eintrittst. Staub flimmert da in der Luft, wo diese von warmen Sonnenstrahlen
                  durchdrungen wird. Du schließt kurz die Augen um die Eindrücke, die auf dich einströmen,
                  aufzunehmen. Das Geräusch von unzähligen Seiten, die dann und wann umgeschlagen werden,
                  das leise Schaben wenn ein Federkiel über ein Pergament huscht, der Duft nach alten Büchern.
                  Ein herrliches Gefühl durchströmt dich. Du fühlst dich seltsam geborgen hier inmitten dieses
                  ganzen Wissens. Während du die Augen aufschlägst, beginnst du schon zu überlegen ,was du
                  hier alles tun könntest. Vielleicht willst du selber ein Buch schreiben und dafür eine
                  kleine Belohnung einstreichen? Oder willst du vielleicht doch lieber in einem dicken Wälzer
                  schmökern? Aber du könntest auch einfach mit anderen Anwesenden ein Gespräch führen…`n`n'
);

        
output("`n`nLeise flüstern einige Besucher miteinander.`n`0");
        
viewcommentary("library","Leise flüstern:",$session['user']['pps']);
        
addnav("Stöbern","library.php?op=browse");
        
addnav("Buch einreichen","library.php?op=offer");
}

addnav('Zurück');
addnav('Zurück zum Marktplatz','marktviertel.php');
addnav('Zurück zum Stadtplatz','village.php');

page_footer();
?>