ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Gallery Rechte werden ignoriert

Geschlossen
  1. #1
    User Pic
    cmdrsamu Mitglied
    Registriert seit
    30.03.2007
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Also ich habe folgendes Problem: Ich habe eine Kategorie in der Gallery über das Admin-Panel erstellt mit dem Recht CoAdmin. Nun geh ich auf die Gallery als ausgeloggter User und kann die Kategorie trotzdem sehen. Nach genauerem Untersuchen der gallery.php konnte ich da auch keine Überprüfung finden, wo nach dem Recht gefragt wird. Wieso steht dann in der Datenbank sauber und ordentlich das Recht eingetragen?
    Übersuchfunktion wurde ich nicht fündig ...


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    cmdrsamu Mitglied
    Registriert seit
    30.03.2007
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Konnte den fehler finden. Falls jemand ähnliches Problem hat ich poste mal den veränderten Galleryscript:
    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    # mini config
    $img_per_site = $allgAr['gallery_imgs_per_site'];
    $img_per_line = $allgAr['gallery_imgs_per_line'];
    
    function get_cats_title ( $catsar ) {
      $l = '';
    	foreach($catsar as $k => $v) {
    	  if ( $k != '' AND $v != '' ) {
    		  $l = $v.' :: '.$l;
    		}
    	}
    	return ($l);
    }
    
    function get_cats_urls ( $catsar ) {
      $l = '';
    	foreach($catsar as $k => $v) {
    	  if ( $k != '' AND $v != '' ) {
    		  $l = '<a class="smalfont" href="?gallery-'.$k.'">'.$v.'</a><b> &raquo; </b>'.$l;
    		}
    	}
    	return ($l);
    }
    
    function count_files ($cid) {
      $zges = 0;
    	$e = db_query("SELECT id FROM prefix_gallery_cats WHERE cat = ".$cid);
    	if ( db_num_rows($e) > 0 ) {
    	  while ($r = db_fetch_assoc($e) ) {
    	    $zges = $zges + count_files ( $r['id'] );
    	  }
    	}
    	$zges = $zges + db_count_query("SELECT COUNT(*) FROM prefix_gallery_imgs WHERE cat = ".$cid);
    	return ( $zges );
    }
    
    function get_cats_array ( $cid , $ar ) {
    	if ( empty($cid) ) {
    	  return ($ar);
    	} else { 
    	  $erg = db_query("SELECT cat,id,name FROM prefix_gallery_cats WHERE id = ".$cid);
    		$row = db_fetch_assoc($erg);
    		$ar[$row['id']] = $row['name'];
    	  return ( get_cats_array($row['cat'],$ar) );
    	}
    	if ( $r ) {
    	  return ($l);
    	}
    }
    
    # original groesse anzeigen
    if ($menu->get(1) == 'showOrig') {
      $tpl = new tpl ('gallery_show');
      $tpl->set('id', escape($menu->get(2), 'integer'));
      $tpl->set('endung',htmlentities($menu->get(3)));
      $tpl->out(4);
    
    # normale groesse anzeigen
    } elseif ($menu->get(1) == 'show') {
      $page = ($menu->getA(3) == 'p' ? escape($menu->getE(3), 'integer') : 1 );
      $cid = escape($menu->get(2), 'integer');
      $anz = db_result(db_query("SELECT COUNT(*) FROM prefix_gallery_imgs WHERE prefix_gallery_imgs.cat = ".$cid),0);
      $erg = db_query("SELECT prefix_gallery_imgs.id,prefix_gallery_imgs.cat,datei_name,endung,prefix_gallery_imgs.`besch`,klicks,vote_wertung,vote_klicks FROM prefix_gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL) ORDER BY id ASC LIMIT ".$page.",1");
      $row = db_fetch_assoc($erg);
      $size = getimagesize('include/images/gallery/img_'.$row['id'].'.'.$row['endung']);
    	$breite = $size[0] + 5;
      $hoehe = $size[1] + 5;
      
      # vote zahlen
      if (isset($_GET['doVote']) AND is_numeric($_GET['doVote']) AND !isset ($_SESSION['galleryDoVote'][$row['id']])) {
        $_SESSION['galleryDoVote'][$row['id']] = 'o';
        $row['vote_wertung'] = round ( ( ( $row['vote_wertung'] * $row['vote_klicks'] ) + $_GET['doVote'] ) / ( $row['vote_klicks'] + 1 ) , 3 ); 
        $row['vote_klicks']++;
        db_query("UPDATE prefix_gallery_imgs SET vote_wertung = ".$row['vote_wertung'].", vote_klicks = ".$row['vote_klicks']." WHERE id = ".$row['id']);
      }
      
      # klicks zaehlen
      if (!isset($_SESSION['galleryDoKlick'][$row['id']])) {
        $_SESSION['galleryDoKlick'][$row['id']] = 'o';
        db_query("UPDATE prefix_gallery_imgs SET klicks = klicks + 1 WHERE id = ".$row['id']);
      }
      
      # page vor und ruck dev
      $next = $page + 1;
      $last = $page - 1;
      if ( $next >= $anz ) { $next = 0; }
      if ( $last < 0 ) { $last = $anz -1; }
    
      # diashow einstellungen
      $diashow_html = '';
      $diashow = $next.'=0&amp;diashow=start';
      if (isset($_GET['diashow']) AND ($_GET['diashow'] == 'start' OR $_GET['diashow'] == 'shownext')) {
        $sek = 4;
        if (isset($_GET['sek'])) { $sek = $_GET['sek']; } 
        $diashow_html = '<meta http-equiv="refresh" content="'.$sek.'; URL=index.php?gallery-show-'.$cid.'-p'.$next.'=0&amp;diashow=shownext&amp;sek='.$sek.'">';
        $diashow = $page.'=0&amp;diashow=stop';
      }
      
      # anzeigen
      $cid = $menu->get(2);
    
      $erg1 = db_query("SELECT cat,name,recht FROM prefix_gallery_cats WHERE id = ".$cid." AND recht >= ".$_SESSION['authright']);
      $cname = 'Gallery';
        if ( db_num_rows($erg1) > 0 ) {
    		  $row1 = db_fetch_assoc($erg1);
    			$array = get_cats_array($row1['cat'],'');
          $cname = $row1['name'];
    			if ( !empty($array) ) {
    			  $titelzw = get_cats_title($array);
    			  $namezw = get_cats_urls($array);
    			} else {
    			  $titelzw = '';
    				$namezw = '';
    			}
    		  $cattitle = ':: '.$titelzw.$row1['name'];
    			$catname = '<b> &raquo; </b>'.$namezw.'<a class="smalfont" href="?gallery-'.$cid.'">'.$row1['name'].'</a>';	
    		} else {
    		  $cattitle = '';
    			$catname = '';
    		}
    
      $title = $allgAr['title'].' :: Gallery '.$cattitle;
      #$title = $allgAr['title'].' :: Gallery '.$cid;
      $hmenu = '<a class="smalfont" href="?gallery">Gallery</a>'.$catname;
      $design = new design ( $title , $hmenu );
    	$design->header();
    	
      $tpl = new tpl ('gallery_show');
      $arr = array (
        'cid' => $cid,
        'last' => $last,
        'next' => $next,
        'diashow' => $diashow,
        'diashow_html' => $diashow_html,
        'endung' => $row['endung'],
        'id' => $row['id'],
        'vote_wertung' => $row['vote_wertung'],
        'vote_klicks' => $row['vote_klicks'],
        'bildr' => $page,
        'besch' => unescape($row['besch']),
        'breite' => $breite,
        'hoehe' => $hoehe
      );
      $tpl->set_ar_out($arr,0);
      
      
      # kommentare
      if ($allgAr['gallery_img_koms'] == 1) {
        # eintragen
        if (isset($_POST['name'])) {
          $name = escape($_POST['name'],'string');
          $text = escape($_POST['text'],'string');
          db_query("INSERT INTO prefix_koms (name,text,uid,cat) VALUES ('".$name."','".$text."',".$row['id'].",'GALLERYIMG')");
        }
        
        # loeschen
        if (isset($_GET['delete']) AND is_admin()) {
          db_query("DELETE FROM prefix_koms WHERE id = ".$_GET['delete']);
        }
        
        # zeigen
        $tpl->set('uname', $_SESSION['authname']);
        $tpl->out(1);
        $class = 'Cnorm';
        $erg = db_query("SELECT id, name, text FROM prefix_koms WHERE uid = ".$row['id']." AND cat = 'GALLERYIMG' ORDER BY id DESC");
        while ($r = db_fetch_assoc($erg)) {
          $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
          $r['class'] = $class;
          $r['text'] = bbcode ($r['text']);
          if (is_admin()) {
            $r['text'] .= '<a href="index.php?gallery-show-'.$cid.'-p'.$page.'=0&amp;delete='.$r['id'].'"><img src="include/images/icons/del.gif" border="0" title="l&ouml;schen" alt="l&ouml;schen" /></a>';
          }
          $tpl->set_ar_out($r,2);
        }
        $tpl->out(3);
      }
      $design->footer();
    } else {
    		$cid = ( $menu->get(1) ? escape($menu->get(1),'integer') : 0 );
    		$erg = db_query("SELECT cat,name,recht FROM prefix_gallery_cats WHERE id = ".$cid." AND recht >= ".$_SESSION['authright']);
    		$cname = 'Gallery';
        if ( db_num_rows($erg) > 0 ) {
    		  $row = db_fetch_assoc($erg);
    			$array = get_cats_array($row['cat'],'');
          $cname = $row['name'];
    			if ( !empty($array) ) {
    			  $titelzw = get_cats_title($array);
    			  $namezw = get_cats_urls($array);
    			} else {
    			  $titelzw = '';
    				$namezw = '';
    			}
    		  $cattitle = ':: '.$titelzw.$row['name'];
    			$catname = '<b> &raquo; </b>'.$namezw.$row['name'];	
    		} else {
    		  $cattitle = '';
    			$catname = '';
    		}
    		$title = $allgAr['title'].' :: Gallery '.$cattitle;
        $hmenu = '<a class="smalfont" href="?gallery">Gallery</a>'.$catname;
        $design = new design ( $title , $hmenu );
    	  $design->header();
    		$tpl = new tpl ('gallery' );
        $erg = db_query("SELECT id,name,`besch`,recht FROM prefix_gallery_cats WHERE cat = ".$cid." AND recht >= ".$_SESSION['authright']." ORDER BY pos");
        if ( db_num_rows($erg) > 0 ) {
    		  $tpl->out(1); $class = 'Cnorm';
    			while ($row = db_fetch_assoc($erg) ) {
    			  $row['gallery'] = count_files($row['id']);
            $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    				$row['class'] = $class;
    			  $tpl->set_ar_out($row,2);
          }
    		  $tpl->out(3);
    		}
        
        $limit = $img_per_site;
        $page = ($menu->getA(2) == 'p' ? escape($menu->getE(2), 'integer') : 1 );
        $MPL = db_make_sites ($page , '' , $limit , '?gallery-'.$cid , "gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL)");
        $anfang = ($page - 1) * $limit;
        $erg = db_query("SELECT prefix_gallery_imgs.id,prefix_gallery_imgs.cat,datei_name,endung,prefix_gallery_imgs.`besch`,klicks,vote_wertung,vote_klicks FROM prefix_gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL) ORDER BY id ASC LIMIT ".$anfang.",".$limit);
    		if ( db_num_rows($erg) > 0 ) {
          $tpl->set('imgperline', $allgAr['gallery_imgs_per_line']);
    		  $tpl->set('cname', $cname);
          $tpl->set('breite', $allgAr['gallery_normal_width']+30);
          $tpl->set('MPL',$MPL);
          $tpl->out(4); $class = 'Cnorm';
          $i = 0;
    			while($row = db_fetch_assoc($erg) ) {
    				$class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    				$row['class'] = $class;
            $row['anz_koms'] = db_result(db_query("SELECT COUNT(*) FROM prefix_koms WHERE uid = ".$row['id']." AND cat = 'GALLERYIMG'"),0);
            $row['besch'] = unescape($row['besch']);
            $row['width'] = round( 100 / $img_per_line );
            $row['bildr'] = $i + (($page-1) * $img_per_site);
            if ( $i <> 0 AND ($i % $img_per_line ) == 0 ) { echo '</tr><tr>'; }
    			  $tpl->set_ar_out($row,5);
            $i++;
    			}
          if ( $i % $img_per_line <> 0 ) {
          $anzahl = $img_per_line - ($i % $img_per_line);
          for($x=1;$x<=$anzahl;$x++){
            echo '<td class="'.$class.'"></td>';
          }
          }
    			$tpl->out(6);
    		}
    		$design->footer();
    }
    
    
    ?>


    Veränderung: Bei jeder Zeile mit Abfrage an die Tabelle "prefix_gallery_cats" folgendes ergänzt: Spaltenauswahl "recht" hinzugefügt, Abfrage WHERE AND "recht >= ".$_SESSION['authright']."" hinzugefügt.


    Zuletzt modifiziert von cmdrsamu am 10.04.2007 - 21:31:41
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Man kann zwar Kategorien sehen, allerdings nicht die Bilder darin, so ist es möglich Bilder in einer Kategorie nur für Member zu haben und in einer Unterkategorie auch für Gäste, aber dies ist sicher Ansichtssache zwinker
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    mobi Mitglied
    Registriert seit
    08.06.2007
    Beiträge
    93
    Beitragswertungen
    3 Beitragspunkte
    Das script so ist ja wirklich super lächeln den ich finde es besser wenn die Leute erst gar nichts wissen das es nochmal eine Kategorie mehr gibt.

    Aber leider ist da irgendwie ein Fehler drin. Wenn ich das script anwende und dann auf ein Bild klicke geht zwar das Popup fenster auf aber man hat dann die ganze Seite und nicht wie gewohnt das einzelne Bild mit Kommentar etc. Wenn man dann das popupfenster vergrößert hat man die ganze Homeopage. Kann man das irgendwei fixen?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    cmdrsamu Mitglied
    Registriert seit
    30.03.2007
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von mobi

    Das script so ist ja wirklich super lächeln den ich finde es besser wenn die Leute erst gar nichts wissen das es nochmal eine Kategorie mehr gibt.

    Aber leider ist da irgendwie ein Fehler drin. Wenn ich das script anwende und dann auf ein Bild klicke geht zwar das Popup fenster auf aber man hat dann die ganze Seite und nicht wie gewohnt das einzelne Bild mit Kommentar etc. Wenn man dann das popupfenster vergrößert hat man die ganze Homeopage. Kann man das irgendwei fixen?


    Ähm ja das mag daran liegen, dass ich die Gallery im Allgemeinen etwas abgeändert habe. Zum Beispiel das es keine PopUp-Fenster gibt. Deswegen kommt bei dir auch der Fehler. Zum Nachlesen:
    externer Link
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten