So langer Rede kurzer Sinn. Hier der Code der tut.php.
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: Tutorials';
$hmenu = 'Tutorials';
$design = new design ( $title , $hmenu );
error_reporting(E_ALL);
if ( !is_numeric($menu->get(1)) ) {
$design->header();
$limit = $allgAr['Nlimit'];
$page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
$MPL = db_make_sites ($page , "WHERE recht >= ".$_SESSION['authright'] , $limit , '?tut' , 'tut' );
$anfang = ($page - 1) * $limit;
$tpl = new tpl ( 'tut.htm' );
echo '<table>';
$result = db_query("SELECT DISTINCT kat FROM `prefix_tut`");
while($katn = db_fetch_object($result)){
$class="";
echo '<tr><td class="Cdark" colspan="2"><b>'.$katn->kat.'</b></td></tr>';
$abf = "SELECT
a.title as title,
a.id as id,
a.time as datum,
a.kat as kate,
a.text as text,
a.recht as nrecht,
b.name as username
FROM prefix_tut as a
LEFT JOIN prefix_user as b ON a.uid = b.id
WHERE (".$_SESSION['authright']." <= a.recht
OR a.recht = 0) and a.kat = '".$katn->kat."'";
#echo '<pre>'.$abf.'</pre>';
$erg = db_query($abf);
while ($row = db_fetch_assoc($erg)) {
$abf1 = "SELECT * FROM prefix_grundrechte where id = ".$row['nrecht']." ";
$erg1 = db_query($abf1);
$row1 = db_fetch_object($erg1);
$k0m = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'TUT'");
$datum = date("d.m.Y",$row['datum']);
$text = bbcode($row['text']);
if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
echo '<tr><td class="'.$class.'"><strong><a href="index.php?tut-'.$row['id'].'">'.$row['title'].'</a></strong></td><td class="'.$class.'"> Geschrieben von '.$row['username'].' am '.$datum.'</td></tr>';
}
}
echo '</table>';
echo $MPL;
} else {
$design->header();
$nid = escape($menu->get(1), 'integer');
$row = db_fetch_object(db_query("SELECT * FROM `prefix_tut` WHERE id = '".$nid."'"));
if ( has_right(array($row->recht)) ) {
$komsOK = true;
if ( $allgAr['Ngkoms'] == 0 ) {
if ( loggedin() ) {
$komsOK = true;
} else {
$komsOK = false;
}
}
if ( $allgAr['Nukoms'] == 0 ) {
$komsOK = false;
}
# kommentar add
if ( (loggedin() OR chk_antispam ('tutkom')) AND $komsOK AND !empty($_POST['name']) AND !empty($_POST['txt']) ) {
$_POST['txt'] = escape($_POST['txt'],'string');
$_POST['name'] = escape($_POST['name'],'string');
db_query("INSERT INTO `prefix_koms` VALUES ('',".$nid.",'TUT','".$_POST['name']."','".$_POST['txt']."')");
}
# kommentar add
# kommentar loeschen
if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2)) AND has_right(-7, 'tut')) {
$kommentar_id = escape($menu->getE(2),'integer');
db_query("DELETE FROM prefix_koms WHERE uid = ".$nid." AND cat = 'TUT' AND id = ".$kommentar_id);
}
# kommentar loeschen
$kategorie = $row->kat;
$textToShow = bbcode($row->text);
if ( !empty($such) ) {
$textToShow = markword($textToShow,$such);
}
$tpl = new tpl ( 'tut.htm' );
$ar = array (
'TEXT' => $textToShow,
'KATE' => $kategorie,
'NID' => $nid,
'uname' => $_SESSION['authname'],
'ANTISPAM' => (loggedin()?'':get_antispam ('tutkom', 0)),
'NAME' => $row->title
);
$tpl->set_ar_out($ar, 2 );
if ($komsOK) {
$tpl->set_ar_out ( array ( 'NAME' => $row->title , 'NID' => $nid ), 3 );
}
$erg1 = db_query("SELECT text, name, id FROM `prefix_koms` WHERE uid = ".$nid." AND cat = 'TUT' ORDER BY id DESC");
$ergAnz1 = db_num_rows($erg1);
if ( $ergAnz1 == 0 ) {
echo '<b>'.$lang['nocomments'].'</b>';
} else {
$zahl = $ergAnz1;
while ($row1 = db_fetch_assoc($erg1)) {
$row1['text'] = bbcode(trim($row1['text']));
if (has_right(-7, 'tut')) {
$row1['text'] .= '<a href="?tut-'.$nid.'-d'.$row1['id'].'"><img src="include/images/icons/del.gif" alt="löschen" border="0" title="löschen" /></a>';
}
$abf2 = 'SELECT id, name, avatar FROM prefix_user WHERE name = "'.$row1['name'].'" ';
$erg2 = db_query($abf2);
$row2 = db_fetch_object($erg2);
$tpl->set_ar_out( array('NAME' => $row1['name'], 'TEXT' => $row1['text'], 'ZAHL' => $zahl ) , 4 );
$zahl--;
}
}
}
$tpl->out(5);
}
$design->footer();
?>
und hier der Ausschnitt der allg.php Zeilen 313-351
function get_antispam ($m, $t) {
global $allgAr;
if (is_numeric($allgAr['antispam']) AND has_right($allgAr['antispam'])) { return (''); }
if (is_array($_SESSION['antispam'])) {
$_SESSION['antispam'] = array();
$_SESSION['antispam'][$m] = array();
}
mt_srand((double)microtime()*1000000);
$i1 = mt_rand (1,9);
$i2 = mt_rand (1,9);
$i3 = mt_rand (1,9);
$id = uniqid('antispam');
$_SESSION['antispam'][$m] = array($i1, $i2, $i3);
$_SESSION['antispam'][$id][$m] = $i1.$i2.$i3;
$rs = '<span style="display: inline; width: 100px; vertical-align: middle; text-align: center; background-color: #000000; border: 0px; padding: 2px; margin: 0px;"><img src="include/images/spam/z.php?m='.$m.'&w=0&'.session_name().'='.session_id().'" alt=""><img src="include/images/spam/z.php?m='.$m.'&w=1&'.session_name().'='.session_id().'" alt=""><img src="include/images/spam/z.php?m='.$m.'&w=2&'.session_name().'='.session_id().'" alt=""><input type="hidden" name="antispam_id" value="'.$id.'" /><input name="antispam" size="3" maxlength="3" style="background-color: #FFFFFF; border: 0px; margin: 0px; padding: 0px;" /></span>';
if ($t == 0) {
return ($rs);
} elseif ($t == 1) {
return ('<tr><td class="Cmite">Antispam</td><td class="Cnorm">'.$rs.'</td></tr>');
} elseif ($t > 10) {
return ('<label style="float:left; width: '.$t.'px; ">Antispam</label>'.$rs.'<br />');
} else {
return ('');
}
}
# antispam
// Funktion scandir für PHP 4
if (version_compare(phpversion(), '5.0.0') == -1) {
function scandir($dir)
{
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) $files[] = $filename;
sort($files);
return $files;
}
}