Jag vet inte om jag fått hjärnsläpp. Men om jag vill få tag på adressen uppe i webbläsarens adressfönster som denna hur gör jag då. Jag vet att man skriver Request.QueryString("sida") tex om man vill åt just discgolfare, men om man vill åt hela adressen? Jag vill alltså komma åt adressen på föregående sida. Läs under "Lite finesser" här: Artikel [Bygg en egen 500 - internal server error sida] Jag löste det genom HTTP_REFERER. Men grejem är den att när jag ska hämta en sida genom Server.Execute så här: HTTP_REFERER är den sidan du kom ifrån när du skulle till den här, kolla i hjälpen för asp så hittar du mer info om vad som annars finns att använda... Läste att man kunde göra en virtuell sökväg men vet inte hur man går tillväga. Kan ngn visa med exempel. Gör så här så får du en relativ url till sidan. Funkar inte. Typiskt!!. Hur ska jag gå tillväga. Allt annat funkar men det är menyn som krånglar Måste nog ha hela adressen... http://www.domän.se/sida.asp... Hej! Jag tror inte att man kan köra Server.Execute på en fullständig adress.. tror bara det fungerar på en fil som ligger på servern. du får nog bara hämta en querystring istället för att hämta hela adressen... Om jag förstod frågan rätt så ville du skicka med querysträngen i Server.Execute-anropet. Jag har inte lyckats få det att fungera. Hur menar du om att använda sessionsvariabler. Ni skriver att en lösning är att använda sessionvariabler, men hur kan jag använda dem med Server.Execute. detta är nytt för mig så ni får gärna visa med ett exempel. Hej!QueryString
http://localhost/default.asp?sida=discgolfare&action=disc&id=11Sv: QueryString
Sv: QueryString
url = Request.ServerVariables("HTTP_REFERER")
Server.Execute(url)
får jag detta fel
Serverobjekt, ASP 0231 (0x80004005)
Ogiltigt URL-format eller så användes en fullt kvalificerad, absolut URL. Använd relativa URL:er.
/default.asp, line 33
Det är nämligen min meny som är problemet. Klickar jag på tex gästbok visas sidan som den ska i mitten på sidan. Trycker jag sedan på länken discgolfare öppnas menyn till vänster med spelarnas namn men gästboken syns fortfarnde i mitten som den ska. Klickar jag på ett namn hämtas spelaren från databasen. Men om jag sedan klickar på en annan länk med undernivåer i menyn så blir mittsidan tom eftersom man inte kan hämta föregående sida som behövs för att sidan ska vara kvar. Jag behöver skicka hela strängen med Server.Execute för att hitta rätt spelare ur databasen så att föregående sida visas när jag klickar på en länk med undernivåer.
-Klickar man på en länk utan undernivåer visas sidan direkt i mitten.
-Klickar man på en länk med undernivåer visas fortfarande föregående sida medans undernivåerna blir synliga.
Hur ska jag gå tillväga?
Ursäkta dubbel inlägget
MVH/MarcusSv: QueryString
Sv: QueryString
Sv: QueryString
url = Request.ServerVariables("HTTP_REFERER")
aUrl = Split(url,"/",4)
url = "/" & aUrl(3)
Server.Execute(url)
Det borde funka.Sv: QueryString
Så här ser default.asp ut
<%@ Language=VBScript%>
<%Option Explicit%>
<%Dim url, aUrl, url2%>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta name="generator" content="Microsoft FrontPage 4.0">
<title>Piteå DiscGolf</title>
</head>
<body bgcolor="#ffffff">
<table width="258" border="1" cellspacing="2" cellpadding="0">
<tr>
<td colspan="3" valign="top"></td>
</tr>
<tr>
<%url=Request.QueryString("sida")
If Request.QueryString("sida") = "mitt" Then
url2 = Request.ServerVariables("HTTP_REFERER")
aUrl = Split(url2,"/",4)
url2 = aUrl(3)
End If
<td valign="top"><%Server.Execute("left.asp")%></td>
<%If Request.QueryString("sida") = "" Then%>
<td valign="top"><%Server.Execute("startsida.asp")%></td>
<%ElseIf Request.QueryString("sida") = "mitt" Then%>
<td valign="top"><%Server.Execute("/" & url2)%></td>
<%Else%>
<td valign="top"><%Server.Execute(url & ".asp")%></td>
<%End If%>
<td valign="top"><%Server.Execute("right.asp")%></td>
</tr>
<tr>
<td colspan="3" valign="top"><%Server.Execute("bottom.asp")%></td>
</tr>
</table>
<p></p>
</body>
</html>
Snälla någon!!!!!
MVH/MarcusSv: QueryString
eller
<meta http-equiv="refresh" content="0;URL=<%=url1%>">
/HHSv: QueryString
Följande är saxat från MSDN:
"The Path parameter must not contain a query string or IIS returns an error."
Du kan göra så här istället:
Alternativ 1:
Använd en sessionvariabel eller cookie för att spara vilken spelare som visas. Kolla först om besökaren valt att visa en ny spelare (QueryString("id") <> ""). Om inte kollar du om sessionvariabeln/cookien innehåller något.
Alternativ 2:
Återigen en sessionvariabel, men den här gången sparar du den innan du exekverar "left.asp". Left.asp kollar om det finns något sparat i variabeln, och i så fall lägger den till detta id i querystringen för alla länkar i menyn. När left.asp är klar kan du nollställa sessionvariabeln om du vill.
Alternativ 3 (Min favorit):
Använd en include för din meny istället för execute. I sådana fall har den inkluderade filen tillgång till alla querystrings, etc. och du kan enkelt skicka vidare spelarId't. Nedanför hittar du två exempelfiler. sida.asp och meny.asp.
sida.asp:
<code>
<html>
<body>
<table width="300">
<tr>
<td valign = "Top">
<!-- #include virtual ="meny.asp" -->
</td>
<td valign = "Top" align="Center">
<%
If Request.QueryString("ID") <> "" Then
Response.Write("<H1>" & Request.QueryString("ID") & "</H1>")
End If
For I = 1 To 5
Response.Write("Spelare " & I & "<br>")
Next
%>
</td>
</tr>
</table>
</body>
</html>
</code>
meny.asp
<code>
<% For I = 1 To 5 %>
">Meny <%= I %><br>
<% Next %>
</code>Sv: QueryString
Sv: QueryString
Om du hämtar sida page1.asp så skriver du ?sida=page1.asp
sen är det ju bara att fixa url = Request.Querystring("sida")
Och sen är det ju bara att skriva Server.Excute("" & url & ".asp")
Svårare än så borde inte felet varaSv: QueryString
Det tillåts inte, vilket var vad jag försökte visa med mitt urklipp ur MSDN i mitt tidigare inlägg. (Sorry om jag var otydlig.)
Summa summarum:
Server.Execute("sida.asp") går bra
Server.Execute("sida.asp?foo=bar") går inte
Lösning:
Använd Sessionvariabler/Cookies istället eller (att föredra) include-filer.
Hur har det gått med förslagen tidigare? Funkade det?Sv: QueryString
MVH/MarcusSv: QueryString
Här är ett exempel på hur du kan använda sessionvariabler med Server.Execute:
test.asp
<code>
Början<br>
<% Session("foo") = "Mitten" %>
<% Server.execute("test2.asp") %><br>
Slutet
</code>
test2.asp
<code>
<%= Session("foo") %>
</code>
Men som sagt var kan du lika gärna byta ut
<code>
<% Server.execute("test2.asp") %><br>
</code>
mot
<code>
<!-- #include virtual ="test2.asp" -->
</code>
det fina med det är att du då kommer åt alla querystrings som skickats till test.asp även i test2.asp.