webForumDet fria alternativet
Logga in / Bli medlem

querystring +redirect

ASP

10 svar · 303 visningar · startad av landle

Medlem sedan juni 20058 inlägg
Trådstart#1

Är lite ringrostig på Asp eftersom det är flera år sen jag höll på med det sist.
Har gjort en startsida som heter default.asp. Där finns ett antal länkar som fungerar som meny. Funktionen jag vill ha är att när man klickar på en länk så skickas man till en sida som heter main.asp där en koll görs av vilken länk man klickat på mha Request.querystring. I main.asp görs en response.redirect med querystringen igen och därefter skickas man tillbaka till default.asp och då ska det i huvudtabellen göras en "include file" beroende på vad som skickas tillbaka i querystring. Alltså vad man klickat på i menyn.

Problemet är att när redirecten görs från main så blir det att "sidan kan inte visas" för att det inte finns en sida som heter tex. default.asp?bilder. (den heter ju bara default.asp).

Är det jag som är helt lost eller vad gör jag för fel?

Medlem sedan juni 200032 967 inlägg
#2

Börja med att visa din kod så vi kan förstå lite mer hur du tänker.

Dock: du kan inte göra include file dynamiskt. Du får i så fall använda Server.Execute.

Mvh

Medlem sedan juni 20058 inlägg
#3

i default.asp så ser den relavanta delen ut så här:

<td width="97%" height="25">
<a href="Pages/main.asp?bilder" onMouseOver="swtch('15','bild8')" onMouseOut="swtch('14','bild8')">
<img name="bild8" border="0" src="Images/Meny/bilder.jpg"></a></td>
<td width="4%" height="25"> </td>
</tr>

Där skickas alltså "bilder" vidare med länken till main.asp.

I main.asp

<%
if request.querystring = "bilder" then
response.Redirect("default.asp?" & Request.Querystring)
end if
%>

Då skickas alltså "bilder" tillbaka till default.asp igen.

Där tas detta om hand i:

<%if request.querystring = "bilder" Then %>

         		\<div id="besokare" style="position:absolute; left:20px; top:30; z-index:1"\>
				\<!--#include file="pages/bilder.asp"--\>
				\</div\>

<%End if%>

Hoppas det blev klarare.. include fungerar bra när det gäller startsidan där jag gör en include på start.asp.

Medlem sedan juni 20058 inlägg
#4

Felet är alltså att sidan inte finns inte som jag skrev tidigare att den inte kan visas..

Medlem sedan juni 200032 967 inlägg
#5

Problemet är att när redirecten görs från main så blir det att "sidan kan inte visas" för att det inte finns en sida som heter tex. default.asp?bilder.

Jag tror inte att det är det som är problemet. Stäng av egna http-felmeddelanden / friendly http error messages i Internet Explorer så borde du få ett vettigare felmeddelande.

Till att börja med alltså.

Medlem sedan juni 20058 inlägg
#6

Den är redan avstängd och det gör ingen skillnad.

"page cannot be found"

och i urlfältet står det
http://localhost/test/Pages/default.asp?bilder

Medlem sedan juni 200032 967 inlägg
#7

Ligger default.asp i mappen pages?

Medlem sedan juni 20058 inlägg
#8

Nä, default.asp ligger direkt under roten och resten av sidorna som main.asp och bilder.asp ligger i Pages

Medlem sedan juni 200032 967 inlägg
#9

Då är det din redirect som är felaktig, eftersom den utgår ifrån att default.asp ligger i samma mapp som den som redirectar. Om default.asp ligger i webbroten är det bara att inleda sökvägen med en /.

response.Redirect("/default.asp?" & Request.Querystring)

mvh

Medlem sedan juni 20058 inlägg
#10

Aha, nu funkar det som en dans..

Tackar så hjärtligt för den snabba och proffsiga hjälpen!

Medlem sedan juni 200032 967 inlägg
#11

Varsågod, och eftersom jag inte sagt det förr:

Välkommen till webForum! :)

Slutligen: Använd gärna Acceptera som slutgiltigt svar. :)

Mvh

267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)