Surfade in på http://www.aspsidan.nu innan och såg i artikelarkivet hur man gjorde ett liknande menysystem som palleman.nu använder men det värkar inte funka som det ska, någon som skulle kunna hjälpa mig med att göra ett som funkar eller ändra det som är fel?
Default.asp
<table border="1" width="61%" height="65">
<tr>
<td width="15%" height="60" valign="top">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href ="default.asp?link=">Startsidan:<br>
<a href ="default.asp?link=Link1">länk1<br>
<a href ="default.asp?link=Link2">länk2
</font>
</td>
<td width="86%" height="59" valign="top">
<%
Set Obj = CreateObject("Scripting.FileSystemObject")
If Obj.FileExists(Trim(LCase(Request.QueryString("link"))) & ".asp") Then
Server.Execute Request.QueryString("link") & ".asp"
Else
Server.execute "start.asp"
End if
Set Obj = Nothing
%>
</td>
</tr>
</table>
Koden fungerar nog, troligtvis så använder du ASP 2.0 eller nåt och då stöds inte Server.Execute. Testa denna (mer ineffektiva) kod i stället:
<a href="default.asp?cat=links">Länkar</a>
<br><a href="default.asp?cat=about">Om sajten</a>
<%
Dim Req
Req = Request.Querystring("cat")
Select Case Req
Case "links" %><!--#include file="links/links.asp"-->
<% Case "about" %><!--#include file="about/about.asp"-->
<% Case Else
Response.Redirect "default.asp"
End Select
%>
Det är ganska enkelt att bygga på fler kategorier. Jag använder SSI i stället, vilket inte är att rekommendera. :(
Ju fler inkluderingar man gör desto segare blir sidan. Så var försiktig med det! Rekommenderar att du använder Server.Execute enligt min kod ovan, i stället för SSI.
Det blir inga fel medelanden, om jag klickar på link1 så kommer jag inte till någon annan sida utan jag är fortfarande kvar. Jag har skapat link.asp så jag brode ju komma till en annan sida eller?
If Obj.FileExists(Server.Mappath(Trim(LCase(Request.QueryString("link"))) & ".asp")) Then
Som var fel :P, inte för att jag är så bra på asp men jag tyckte att Server.Mappath borde funnits någonstans, men som sakt jag är inte så bra på asp (inte ennu i alla fall :P).. hehe.. men tack så jätte mycket killar :D
Det är som anders säger.. du måste byta ut:
If Obj.FileExists(Trim(LCase(Request.QueryString("link"))) & ".asp") Then
Mot:
If Obj.FileExists(Server.Mappath(Trim(LCase(Request.QueryString("link"))) & ".asp")) Then
Sen har du väl en fil som heter link1.asp?
Angående version 3.. så Tackar.. kul att du kikat :)
Det är Silvio och FinalWorld som ansvarar för detta .. jag är bara åskådare jag med.. :)