LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /zerbaes/neu/viewpetition.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: /zerbaes/neu/viewpetition.php

<?php

// 11092004

require_once "common.php";
isnewday(2);
if (
addcommentary()) {
    
$sql 'UPDATE petitions SET lastact=NOW() WHERE petitionid="'.$_GET['id'].'"';
    
db_query($sql);
}

$statuses=array(0=>"`bUngelesen`b","Gelesen","Geschlossen");

if (
$_GET[op]=="del"){
    
$sql "DELETE FROM petitions WHERE petitionid='$_GET[id]'";
    
db_query($sql);
    
$sql "DELETE FROM commentary WHERE section='pet-{$_GET['id']}'";
    
db_query($sql);
    
$sql 'DELETE FROM petitionmail WHERE petitionid="'.$_GET['id'].'"';
    
db_query($sql);
    
$_GET[op]="";
}
elseif (
$_GET['op']=='sendmessage') {
    
$sql 'SELECT author,body FROM petitions WHERE petitionid="'.$_GET['id'].'"';
    
$row db_fetch_assoc(db_query($sql));
    
$_POST['subject']=closetags(str_replace("`n","",$_POST['subject']),'`c`i`b');
    
$_POST['body']=str_replace("`n","\n",$_POST['body']);
    
$_POST['body']=str_replace("\r\n","\n",$_POST['body']);
    
$_POST['body']=str_replace("\r","\n",$_POST['body']);
    
$_POST['body']=substr($_POST['body'],0,(int)getsetting("mailsizelimit",1024));
    
$_POST['body'] = closetags($_POST['body'],'`c`i`b');
    
systemmail($row['author'],$_POST['subject'],$_POST['body']);
    
petitionmail($_POST['subject'],$_POST['body'],$_GET['id'],$session['user']['acctid'],1,$row['author'],db_insert_id(LINK));
    
redirect('viewpetition.php?op=view&id='.$_GET['id']);
}
page_header("Petition Viewer");
addnav("G?Zurück zur Grotte","superuser.php");
addnav("W?Zurück zum Weltlichen","village.php");
if (
$_GET[op]==""){
    
$sql "SELECT petitionid FROM petitions WHERE status=2 AND date<'".date("Y-m-d H:i:s",strtotime(date("r")."-7 days"))."'";
    
$result db_query($sql);
    while (
$row db_fetch_assoc($result)) db_query('DELETE FROM petitionmail WHERE petitionid="'.$row['petitionid'].'"');
    
$sql "DELETE FROM petitions WHERE status=2 AND date<'".date("Y-m-d H:i:s",strtotime("-7 days"))."'";
    
db_query($sql);
    if (
$_GET[setstat]!=""){
        
$sql "UPDATE petitions SET status='{$_GET['setstat']}' WHERE petitionid='{$_GET['id']}'";
        
db_query($sql);
        
//output($sql);
    
}
    
$sql "SELECT petitions.petitionid,petitions.lastact,accounts.name,petitions.date,petitions.status,petitions.body, IF(petitionmail.petitionid > 0,COUNT(*),0) AS petmails FROM petitions LEFT JOIN petitionmail USING(petitionid) LEFT JOIN accounts ON accounts.acctid=petitions.author GROUP BY petitions.petitionid ORDER BY petitions.status ASC, petitions.lastact DESC, petitions.date DESC";
    
$result db_query($sql);
    
addnav("Aktualisieren","viewpetition.php");
    
output("<table border='0'><tr class='trhead'><td>Num</td><td>Ops</td><td>Von</td><td>Sent</td><td>Status</td><td>Kommentare</td></tr>",true);
    for (
$i=0;$i<db_num_rows($result);$i++){
        
$row db_fetch_assoc($result);
        
$sql "SELECT count(commentid) AS c FROM commentary WHERE section='pet-{$row['petitionid']}'";
        
$res db_query($sql);
        
$counter db_fetch_assoc($res);
        
output("<tr class='".($i%2?"trlight":"trdark")."'><td>{$row['petitionid']}</td><td>[<a href='viewpetition.php?op=view&id={$row['petitionid']}'>Anzeigen</a>|<a href='viewpetition.php?op=del&id={$row['petitionid']}' onClick='return confirm(\"Diese Anfrage wirklich löschen?\");'>Del</a>|<a href='viewpetition.php?setstat=0&id={$row['petitionid']}'>Ungelesen</a>|<a href='viewpetition.php?setstat=1&id={$row['petitionid']}'>Gelesen</a>|<a href='viewpetition.php?setstat=2&id={$row['petitionid']}'>Geschlossen</a>]</td>",true);
        
output("<td>",true);
        if (
$row['name']==""){
            
output(preg_replace("'[^a-zA-Z0-91234567890\\[\\]= @.!,?-]'","",substr($row['body'],0,strpos($row['body'],"[email"))));
        }else{
            
output($row['name']);
        }
        
output("</td><td>{$row['date']}</td><td>{$statuses[$row['status']]}".($row['lastact']>max($session['lastlogoff'],$session['petitions'][$row['petitionid']])?'`4*`0':'')."</td><td>{$counter['c']}</td></tr>",true);
        
addnav("","viewpetition.php?op=view&id=$row[petitionid]");
        
addnav("","viewpetition.php?op=del&id=$row[petitionid]");
        
addnav("","viewpetition.php?setstat=0&id=$row[petitionid]");
        
addnav("","viewpetition.php?setstat=1&id=$row[petitionid]");
        
addnav("","viewpetition.php?setstat=2&id=$row[petitionid]");
    }
    
output("</table>",true);
    
output("`i(Geschlossene Anfragen werden nach 7 Tagen automatisch gelöscht)`i");
    
output("`n`bSchlüssel:`b`nUngelesen: Niemand arbeitet bisher an diesem Problem.
    `nGelesen: Es arbeitet jemand an diesem Problem.
    `nGeschlossen: Diese Anfrage wurde bearbeitet. Es sollte keine weitere Arbeit mehr nötig sein.`n`n
    Wenn eine Anfrage gelesen wird, wird sie automatisch als gelesen markiert, wenn sie nicht schon als geschlossen markiert war. 
    Wenn du ein Problem nicht lösen kannst, markiere die Anfrage wieder als ungelesen, damit 
    ein anderer dem Spieler helfen kann.`n
    Wenn eine Anfrage erfolgreich bearbeitet wurde, markiere sie als geschlossen. Sie wird nach 7 Tagen dann automatisch gelöscht."
);
}elseif(
$_GET[op]=="view"){
    if (
$_GET['viewpageinfo']==1){
        
addnav("Details ausblenden","viewpetition.php?op=view&id={$_GET['id']}");
    }else{
        
addnav("D?Details anzeigen","viewpetition.php?op=view&id={$_GET['id']}&viewpageinfo=1");
    }
    
addnav("Anfragen anzeigen","viewpetition.php");

    
addnav("Operationen");
    
addnav("Anfrage schliessen","viewpetition.php?setstat=2&id=$_GET[id]");
    
addnav("U?Als Ungelesen markieren","viewpetition.php?setstat=0&id=$_GET[id]");
    
addnav("S?Als GeleSen markieren","viewpetition.php?setstat=1&id=$_GET[id]");
    
    
$sql "SELECT accounts.name,accounts.login,accounts.acctid,petitions.date,petitions.status,petitionid,body,pageinfo FROM petitions LEFT JOIN accounts ON accounts.acctid=petitions.author WHERE petitionid='$_GET[id]' ORDER BY date ASC";
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    
$session['petitions'][$_GET['id']] = date('Y-m-d H:i:s');
    if (
$row['acctid']>0){
        
addnav("Usereintrag bearbeiten","user.php?op=edit&userid={$row['acctid']}&returnpetition={$_GET['id']}");
    }
    
output("`@Von: ");
    
$row[body]=stripslashes($row[body]);
    if (
$row['login']>""output("<a href=\"mail.php?op=write&to=".rawurlencode($row[login])."&body=".URLEncode("\n\n----- Deine Anfrage -----\n".$row[body])."&subject=RE:+Hilfeanfrage\" target=\"_blank\" onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row[login])."&body=".URLEncode("\n\n----- Deine Anfrage -----\n".$row[body])."&subject=RE:+Hilfeanfrage").";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0'></a>",true);
    
output("`^`b$row[name]`b`n");
    
output("`@Datum: `^`b$row[date]`b`n");
    
output("`@Body:`^`n");
    
$body HTMLEntities($row[body]);
    
$body preg_replace("'([[:alnum:]_.-]+[@][[:alnum:]_.-]{2,}([.][[:alnum:]_.-]{2,})+)'i","<a href='mailto:\\1?subject=RE: Hilfeanfrage&body=".str_replace("+"," ",URLEncode("\n\n----- Deine Anfrage -----\n".$row[body]))."'>\\1</a>",$body);
    
$body preg_replace("'([\\[][[:alnum:]_.-]+[\\]])'i","<span class='colLtRed'>\\1</span>",$body);
    
$output.="<span style='font-family: fixed-width'>".nl2br($body)."</span>";
    
output("`n`@Kommentare:`n");
    
viewcommentary("pet-{$_GET['id']}","Hinzufügen",200);
    if (
$row['login']!='') {
        
$answerbody "\n\n----- Deine Anfrage -----\n".$row['body'];
        
$answersubject 'RE: Hilfeanfrage';
        
output('`n`n`@Mailverkehr:`n<table><tr><td>',true);
        
$sql 'SELECT petitionmail.*, accounts.login FROM petitionmail LEFT JOIN accounts ON petitionmail.msgfrom=accounts.acctid WHERE petitionid="'.$_GET['id'].'" ORDER BY sent ASC';
        
$result db_query($sql);
        while (
$row2 db_fetch_assoc($result)) {
            
output('<table class="input" width="100%"><tr><td>',true);
            
output('`4Datum:`& '.$row2['sent'].'`n`4Von:`& '.$row2['login'].'`n`4Betreff:`& '.$row2['subject'].'`n`4Text:`& ');
            
output(str_replace("\n","`n",$row2['body']));
            
output('</td></tr></table>`n',true);
            
$answerbody "\n\n----- Deine Anfrage -----\n".$row2['body'];
            
$answersubject 'RE: '.$row2['subject'];
        }
        
output('</td></tr></table>',true);
        
output('<form action="viewpetition.php?op=sendmessage&id='.$_GET['id'].'" method="post">',true);
        
output('`@Ingame-Mail schreiben`n');
        
output('Betreff: <input type="text" name="subject" value="'.$answersubject.'">`nText:`n<textarea name="body" class="input" cols="40" rows="9">'.$answerbody.'</textarea>`n<input type="submit" class="button" value="Senden"></form>`n',true);
        
addnav('','viewpetition.php?op=sendmessage&id='.$_GET['id']);
        
$sql 'UPDATE petitionmail SET seen=1 WHERE petitionid="'.$_GET['id'].'"';
        
db_query($sql);
    }    
    if (
$_GET['viewpageinfo']){
        
output("`n`n`@Seiten Info:`&`n");
        
$row[pageinfo]=stripslashes($row[pageinfo]);
        
$body HTMLEntities($row[pageinfo]);
        
$body preg_replace("'([[:alnum:]_.-]+[@][[:alnum:]_.-]{2,}([.][[:alnum:]_.-]{2,})+)'i","<a href='mailto:\\1?subject=RE: Hilfeanfrage&body=".str_replace("+"," ",URLEncode("\n\n----- Deine Anfrage -----\n".$row[body]))."'>\\1</a>",$body);
        
$body preg_replace("'([\\[][[:alnum:]_.-]+[\\]])'i","<span class='colLtRed'>\\1</span>",$body);
        
$output.="<span style='font-family: fixed-width'>".nl2br($body)."</span>";
    }    
    if (
$row[status]==0) {
        
$sql "UPDATE petitions SET status=1 WHERE petitionid='$_GET[id]'";
        
$result db_query($sql);
    }
}
page_footer();
?>