webForumDet fria alternativet

Menysystem

PHP

5 svar · 342 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#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
Medlem 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?

Medlem sedan apr. 20041 597 inlägg
#3

Detta...

$number = mysql_num_rows($SQLmenu)-1;
Medlem 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.

Medlem sedan jan. 20021 122 inlägg
#5

$_SERVER['HTTP_HOST']

Medlem 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!

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)