explode() gibt -> Array aus

  • Hallo,

    ich möchte eine Abfrage machen, welche Benutzergruppe, verschiedene Navigations-Boxen sehen dürfen, und welche nicht

    hier einmal mein code


    ich weiß nciht, was ich falsch mache... Also mit diesem code wird natürlich kein Array ausgegeben... wie man hier

    Code
    if($wbbuserdata['groupid']==$ende) eval ("\$navigation .= \"".$tpl->get("navigation")."\";");

    erkennt, möchte ich, das alle Users, die die Bentzergruppe (1,2,3,4 oder 5) angehören, dieses Template sehen.
    in der DB sind die ids sogespeichert:
    1
    2
    3
    4
    5

    ist ja auch klar...

    aber es geht nicht :twisted: :twisted: :twisted:

    ich bin am verzweifeln, bitte helft mir :((

    LG,
    DaGarfield

  • Was liefert denn explode? Grübel, grübel, ahhh ein array. Also was hast du dann hier:

    Code
    $ende=explode("\n",$navdb['zugriffe_box']);


    Ahh, ein Array
    Und was vergleichst du hier:

    Code
    if($wbbuserdata['groupid']==$ende)


    Ohh, schon wieder ein Array.
    Und dann noch

    Code
    $navdb = $db->query("SELECT * FROM bb".$n."_navigation WHERE id='$row[id]'");


    Was ist denn hier $navdb? Da geht dein explode sowieso in die hose.

  • Anhang an Bandit:
    Deswegen error_reporting(E_ALL);
    dann solltest n paar Fehlermeldungen bekommen^^

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Jo, die bekomme ich auch.

    Notice: Undefined variable: navigation in /usr/export/www/hosting/kiboard/global.php(128) : eval()'d code on line 13

    Notice: Undefined variable: index_showevents in /usr/export/www/hosting/kiboard/index.php(116) : eval()'d code on line 28


    Mit

    Code
    if($wbbuserdata['groupid']==$ende)

    will ich gucken, ob $wbbuserdata['groupid'] << meine eigene gruppenid eine id aus der db gleich sit, wenn ja, sehe ich das template...

  • Das Script kennt die variablen navigation und index_showevents nicht.

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.