Wie baue ich eine "Loged In" Abfrage in diese Navi

Gesperrt
moellerchen
Beiträge: 71
Registriert: Do 26. Aug 2004, 19:59
Kontaktdaten:

Wie baue ich eine "Loged In" Abfrage in diese Navi

Beitrag von moellerchen »

Hallo Leute,

ich verwende die folgende Service Navi:

Input

Code: Alles auswählen

/*********************************************** 
* INPUT 
************************************************/ 

// selected category 
$selected = "CMS_VALUE[4100]"; 
$selected2= "CMS_VALUE[4101]"; 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"> 
        <tr valign=\"top\"> 
          <td class=\"text_medium\">Kategorie wählen, deren Unterkategorien<br> angezeigt werden sollen:</td> 
          <td class=\"text_medium\"> 
            <select class=\"text_medium\" name=\"CMS_VAR[4100]\">"; 
            if($selected!="0" && $selected!=""){ 
             echo"<option value=\"0\">--- kein ---</option>"; 

            }else{ 
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "   SELECT 
                     A.idcat, 
                     A.level, 
                     C.name 
                
                  FROM  ".$cfg["tab"]["cat_tree"]." AS A, 
                        ".$cfg["tab"]["cat"].     " AS B,  
                        ".$cfg["tab"]["cat_lang"]." AS C 
                        
                  WHERE 
                      A.idcat=B.idcat 
                           AND B.idcat=C.idcat 
                           AND C.idlang='$lang' 
                           AND B.idclient='$client' 
                           AND C.visible=1 ORDER BY A.idtree"; 
                            
            // execute query 
            $db->query($query); 

            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 

              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected == $db->f("idcat")) { 
                // selected category 
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "      </select>"; 

echo "    </td> 
        </tr> 
        <tr valign=\"top\">        
          <td class=\"text_medium\">Zurückkategorie wählen:</td> 
          <td class=\"text_medium\"> 
            <select class=\"text_medium\" name=\"CMS_VAR[4101]\">"; 
            if($selected2!="0" && $selected2!=""){ 
             echo"<option value=\"0\">--- kein ---</option>"; 

            }else{ 
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "   SELECT 
                     A.idcat, 
                     A.level, 
                     C.name 
                
                  FROM  ".$cfg["tab"]["cat_tree"]." AS A, 
                        ".$cfg["tab"]["cat"].     " AS B,  
                        ".$cfg["tab"]["cat_lang"]." AS C 
                        
                  WHERE 
                      A.idcat=B.idcat 
                           AND B.idcat=C.idcat 
                           AND C.idlang='$lang' 
                           AND B.idclient='$client' 
                           AND C.visible=1 ORDER BY A.idtree"; 
                            
            // execute query 
            $db->query($query); 

            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 

              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected2 == $db->f("idcat")) { 
                // selected category 
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "      </select>"; 

echo "    </td> 
        </tr>        
        
      </table>"; 
Output

Code: Alles auswählen

<?php 

/*********************************************** 
* OUTPUT 
************************************************/ 

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php"); 

// **************************************************************************************************** 
// SECURITY-CHECKS 
// **************************************************************************************************** 

// SQL-Injection Überprüfungen und Work-Arounds 

// lokale Variabeln initialisieren um Injections zu unterbinden 
$db2       = ""; 
$catStart    = ""; 
$catPrev   = ""; 
$sTmpStr    = ""; 
$db2_sql    = ""; 
$catIds    = ""; 
$key       = ""; 
$val       = ""; 
$sql       = ""; 

// **************************************************************************************************** 

// erstelle eine zweite DB-Klasseninstanz, da wir hier 
// mit zwei Abfragen udn Resultsets arbeiten müssen 
$db2 = new DB_Contenido; 


// Hole aus der Artikeldefinition die Ausgewählte Navigationsebene 
$catStart = "CMS_VALUE[4100]"; 
$catPrev  = "CMS_VALUE[4101]"; 

// * get catPrec Category and output CatName as [ BackTo ]  nav item 


if ($catStart != "") { 
  $sTmpStr = ""; 

        // Datenbankabfrage ( SQL QUERY ) aufbauen 
        $sql = "SELECT 
              CAT.idcat AS idcat, 
              name 
           FROM 
              ".$cfg["tab"]["cat"]." AS CAT, 
              ".$cfg["tab"]["cat_lang"]." AS CATLANG 
              
                  WHERE    CAT.idcat = ".$catPrev." 
                     AND CAT.idcat = CATLANG.idcat 
                     AND CATLANG.idlang = '$lang' 
                     AND CATLANG.visible = '1'"; 
                      
        // Datenbankabfrage durchführen 
        $db->query($sql); 


        // die einzelnen Recordsets der Datenbankabfrage durchgehen 
        while ( $db->next_record() ) { 
          
                // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist 
           if ( strlen($sTmpStr) == 0 ) { 
               // ... Nein, dann die Formatierung für den ersten Eintrag verwenden 
               // und den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr .  '<a class="navi" href="front_content.php?idcat='.$db->f("idcat").'">Zurück zu '.$db->f("name").'</a>'; 
           } 
           else 
           { 
               // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und 
               // den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr .  '  |  <a class="navi" href="front_content.php?idcat='.$db->f("idcat").'">Zurück zu '.$db->f("name").'</a>';          
           }  // end if 
        } // end while 
                        
   $db2_sql = "   SELECT 
            * 
         FROM ". $cfg["tab"]["cat"] ." AS A 
       
         WHERE 
          
           A.parentid = ". $catStart . " 

                                                ORDER BY A.preid 

                                                 "; 

   // Abfrage ausführen 
   $db2->query($db2_sql); 

     // Ermittlung aller Kategorie IDs der ausgesuchten 
     // Navigationsebene und speicherug in einem Array 
   while ( $db2->next_record() ) { 
             // $catIds[] = $db2->f("idcat"); 
      $test_1[$db2->f("preid")] = $db2->f("idcat"); 
   } 
    
/* 
PREID => IDCAT  ( $test_1 ) 
Array ( 
   [0]    => 50 

   [26]    => 27 
   [27]    => 28 
   [28]    => 29 
   [29]    => 30 
   [30]    => 31 
   [31]    => 32 
   [32]    => 33 
   [33]    => 38 
   [34]    => 35 
   [35]    => 36 
   [36]    => 37 
   [38]    => 34 
   [50]    => 26 
) 
------------------------------------ 
*/ 

// --------------------------------------------- 
// sort ids 
$ar_anz = count($test_1); 
$lpre = 0; 
$test_3 = ""; 
$ires = ""; 

for ( $sli = 1 ; $sli <= $ar_anz ; $sli++ ) 
{ 
   $ires        = $test_1[$lpre];    
   $test_3[]    = $test_1[$lpre];    
   $lpre        = $ires; 
} 


// print_r($test_3); echo '<br><br>'; 
$catIds = $test_3; 
// --------------------------------------------- 

  // Überprüfung ob $catIds wirklich ein Array ist 
  if ( is_array($catIds) ) { 

    // die einzelnen IDs durchgegen 
    foreach($catIds as $key=>$val) { 

        
        // Datenbankabfrage ( SQL QUERY ) aufbauen 
        $sql = "SELECT 
              CAT.idcat AS idcat, 
              name 
           FROM 
              ".$cfg["tab"]["cat"]." AS CAT, 
              ".$cfg["tab"]["cat_lang"]." AS CATLANG 
              
                  WHERE    CAT.idcat = ".$val." 
                     AND CAT.idcat = CATLANG.idcat 
                     AND CATLANG.idlang = '$lang' 
                     AND CATLANG.visible = '1'"; 

        // Datenbankabfrage durchführen 
        $db->query($sql); 


        // die einzelnen Recordsets der Datenbankabfrage durchgehen 
        while ( $db->next_record() ) { 
          
                // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist 
           if ( strlen($sTmpStr) == 0 ) { 
               // ... Nein, dann die Formatierung für den ersten Eintrag verwenden 
               // und den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr .  '<a class="subnavi" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>'; 
           } 
           else 
           { 
               // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und 
               // den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr .  '  |  <a class="subnavi" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>';          
           }  // end if 
        } // end while 
    }  // end foreach 
    // Ausgabevariabel schreiben, da nun alle Einträge behandelt wurden. 
    echo '&nbsp;&nbsp;' . $sTmpStr; 
  } // end if (is_array) 


} 
?>
Wie kann ich da eine Abfrage integrieren, so dass wenn man sich über ein LogIn einloggt, ein neuer Menüpunkt angezeigt wird, der nur "Mitgliedern" vorbehalten ist???!! Nach einem Logout soll er wieder verschwinden...

Hatte eine Lösung für eine Standard-Navi schon gesehen, doch diese lässt sich leider nicht auf meine Seite anwenden (bzw. die Parameter in dem Output Code von meiner Service-Navi sind ganz andere).

Ich würde mich sehr über Hilfe freuen.

meine Seite:
http://www.elektrisch-sampler.de/cms
Viele Grüße
Ingo
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

deine url ist falsch -> http://www.elektrisch-sampler.de/contenido/cms/

ich verschieb das nach modul requests...
*** make your own tools (wishlist :: thx)
Gesperrt