PHP menübutten index.php?a=lost_pw fehler
surfer
- php
0 dedlfix
Hallo,
ich habe eine index.php
Uber index.php?a=lost_pw wird die "lost_pw" seite aufgerufen und im wrapper ausgegeben.
Im Wrapper ist per include die navigations.php{include "http://www.domain.de/verzeichis/navigation.php"}
diese enthält
<?
$siteRoot= substr_replace ($_SERVER['PHP_SELF'], "",strrpos ($_SERVER['PHP_SELF'], "/")+1);
$menuStruct=array(
"Startseite"=>array("root"=>$siteRoot."index.php"),
"Seite Eintragen"=>array("root"=>$siteRoot."index.php?a=join"),
"Einloggen"=>array("root"=>$siteRoot."index.php?a=user_cpl"),
"Passwort vergessen?"=>array("root"=>$siteRoot."?a=lost_pw")
"Regeln"=>array("root"=>$siteRoot."regeln.php")
);
if ($_SERVER['REQUEST_URI'] == $menuStruct["Startseite"]['root'])
{foreach($menuStruct as $key=>$value)
{if($_SERVER['REQUEST_URI'] == $value['root'])
{echo "<div class="fstLevelActive"><a href=".$value['root']."
titel=".$value['root'].">$key</a></div>\n";
}
else
{echo "<div class="fstLevel"><a href=".$value
['root'].">$key</a></div>\n";
}
}
}
else
{foreach($menuStruct as $key=>$value)
{if($_SERVER['REQUEST_URI'] == $value['root'])
{echo "<div class="fstLevelActive"><a href=".$value
['root'].">$key</a></div>\n";
}
else
{if(in_array($_SERVER['REQUEST_URI'] ,$value))
echo "<div class="fstLevelActive"><a href=".$value
['root'].">$key</a></div>\n";
else
echo "<div class="fstLevel"><a href=".$value
['root'].">$key</a></div>\n";
}
foreach($value as $key2=>$value2)
{if(array_search($_SERVER['REQUEST_URI'] ,$value))
{if($key2 != "root")
if($_SERVER['REQUEST_URI'] == $value2)
{echo "<div class="secLevelActive"><a
href=".$value2.">$key2</a></div>\n";
if ($thirdLevel[$value2])
{foreach($thirdLevel[$value2] as $key3=>
$value3)
{if($_SERVER['REQUEST_URI'] == $value3)
{echo "<div class="trdLevelActive"><a
href=".$value3.">$key3</a></div>\n";
}
else
{echo "<div class="trdLevel"><a
href=".$value3.">$key3</a></div>\n";
}
}
}
}
else
{echo "<div class="secLevel"><a
href=".$value2.">$key2</a></div>\n";
}
}
}
}
}
?>
Das menü funktioniert grob:
Es werden die einzelnen Seiten aufgerufen.
Nur bei regel.php wird der aktive Butten hervorgehoben.
error_reporting(E_ALL); gibt keine Fehler-Meldung
Index.php
$x = $_SERVER['REQUEST_URI'];
echo $x;
gibt die einzelnen Seiten wieder
/meinverzeichnis/index.php?a=lost_pw
Wie kann ich es machen, dass auch bei z.b. index.php?a=lost_pw der richtige Butten aktiv ist?
Vielen Dank für eure hilfe.
echo $begrüßung;
Im Wrapper ist per include die navigations.php{include "http://www.domain.de/verzeichis/navigation.php"}
Im Allgemeinen möchte man auf die zu inkludierende Datei über das Dateisystem zugreifen, statt mittels eines HTTP-Requests. Denn bei diesem ist es meist so, dass das Script ausgeführt wird und dessen Ergebnis das Ergebnis des Inkludes über HTTP darstellt.
diese enthält
"Ich poste euch einen Haufen Code, sucht mir bitte meinen Fehler. Als kleines Extra hab ich auch mit Leerzeichen und Kommentaren gespart, ihr seid ja Profis und bekommt das auch so hin." :-)
So funktionierts nicht. Bitte prüfe selbst dein Script. Verwende Kontrollausgaben der beteiligten Variablen und Ausdrücke. Erwartest du, dass eine Bedingng erfüllt ist, setze eine Kontrollausgabe in den bedingten Anweisungsteil. Überprüfe bei Ausbleiben selbiger die Werte und das Ergebnis der Bedingung.
Wenn du an einer bestimmten Stelle nicht weiterweißt, frage konkret zu dieser Stelle. Du kannst auch ein Testscript erstellen, das mit so wenig Code wie möglich das Problem nachzustellen versucht. Manchmal stellt sich dabei heraus, dass der Fehler woanders liegt. Mit diesem Minimalcode lässt sich ein Problem von Außenstehenden auch oft besser nachvollziehen.
Das menü funktioniert grob:
Es werden die einzelnen Seiten aufgerufen.
Nur bei regel.php wird der aktive Butten hervorgehoben.
Hast du vielleicht ein clientseitiges Problem? Analysiere zuerst dieses. Wenn du als Ursache ein fehlendes Stück HTML-Code ausmachst, das von PHP hätte ausgegeben werden sollen, so forsche nach Ursache der Nicht-Ausgabe. Mixe nicht beide Seiten (Client und Server) zu einem großen Problem zusammen.
error_reporting(E_ALL); gibt keine Fehler-Meldung
Überprüfe, ob die Fehlermeldungsausgabe prinzipiell funktioniert, z.B. indem du einmal lesend auf eine nicht vorhandene Variable zugreifst.
echo "$verabschiedung $name";