webForumDet fria alternativet

Menysystem

5 svar · 342 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#1

Hej,

Jag har ett menysystem på min sida som jag konstruerat själv. Det har fungerat så som man kan förvänta sig. Länkarna skrivs ut med rätt sökväg osv.

Utgångsläget är nu följande. Menylänkarna skrivs ut med namn och sökväg och var och en av dessa länkar har en korresponderande fil i min root-katalog.

En länk som är rätt utskriven ser exempelvis ut så här:

[url]http://flygfyren.test/index.php[/url]

Nu håller jag på och utvecklar ett nytt forum som jag hade tänkt att placera i mappen "forum" (mer ordning o reda) vilket skulle göra att sökvägen till forum.php blev:

[url]http://flygfyren.test/forum/forum.php[/url]

När man står på index.php visas denna sökväg helt korrekt.

Det är när jag valt att gå till forumet (forum.php) som sökvägen blir helt fel hos de andra länkarna i menyn. De ritas om varje gång min header-fil.

Den absoluta sökvägen till min index.php-fil ser nu felaktigt ut så här:

[url]http://flygfyren.test/forum/index.php[/url]

Nu verkar värdet på $objRS[path] ligga kvar för alla länkar. För en länk/fil som inte har någon egen mapp lagras bara ett NULL-värde i databasfältet path (se bifogad bild). NULL-värdet borde i min värld borga för att path=forum EJ skulle skrivas ut för länkar som ej har denna sökväg angiven i databasen.

Min funktion ser ut på följande sätt:

echo "<table cellspacing=0 cellpadding=0 border=0px><tr><td style='padding: 6px 0px 8px 5px;'>&nbsp;</td>";
		while($objRS = mysql_fetch_array($SQLmenu)) {
			if($number>0) {
			echo "<td style='padding: 6px 0px 8px 0px;'><a href='".$objRS[path].$objRS[filename]."'>".$objRS[pagename]."</a>&nbsp;&nbsp;&nbsp;<b><span style='color: #FD5908;'>:</span></b>&nbsp;&nbsp;&nbsp;</td>";
			$number = $number-1;
			} else {
				echo "<td style='adding: 6px 0px 8px 0px;'><a href='./".$objRS[path].$objRS[filename]."'>".$objRS[pagename]."</a></td>";
			}
		}
		echo "</tr></table>";

Någon som ser varför detta fel yppar sig? Har stirrat mig lite blind och ser väl därför inte lösningen :OO

navigering.jpg
pettssonMedlem sedan jan. 20021 122 inlägg
#2

Glöm inte 'ar runt indexnamnen i arrayerna. Iofs inte problemet här, men :stud
Vad initialiseras $number med?

lillebrorMedlem sedan apr. 20041 597 inlägg
#3

Detta...

$number = mysql_num_rows($SQLmenu)-1;
lillebrorMedlem sedan apr. 20041 597 inlägg
#4

Testade att lägga in denna kod:

if(!$objRS[path]) {
echo "<td style='padding: 6px 0px 8px 0px;'><a href='http://flygfyren.test/".$objRS[filename]."'>".$objRS[pagename]."</a>   <b><span style='color: #FD5908;'>:</span></b>   </td>";
} else {
echo "<td style='padding: 6px 0px 8px 0px;'><a href='./".$objRS[filename]."'>".$objRS[pagename]."</a>   <b><span style='color: #FD5908;'>:</span></b>   </td>";	
}

Koden kollar om det är en länk som ska skrivas ut som har en sökväg annan en root-katalogen.

Någon som kan tipsa på vilken server-variabel jag kan använda mig av så att jag inte behöver skriva "flygfyren.test" statiskt i koden. Eftersom detta enbart är en utvecklingsmiljö kommer domännamnet att ändras.

pettssonMedlem sedan jan. 20021 122 inlägg
#5

$_SERVER['HTTP_HOST']

lillebrorMedlem sedan apr. 20041 597 inlägg
#6

Problemet med hur menyn skriver ut länkarna har jag nu löst. Efter det hade jag problem nummer två att ta tag i. Jag kunde klicka på länken forum men jag kom till forum.php som om att jag inte hade behörighet eller var inloggad. Inget visades förutom ett meddelande till användaren.

Lösningen: Jag kom på att min sidvalideringsfunktion normalt söker på fil.php-syntaxen i databasen. Nu satt sökvägen ihop med filnamnet vilket medförde att jag fick ta explode[2] istället explode[1] när jag skillde på slashen i "forum/forum.php. Vajert!

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)