WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med & i querystring (https://www.wn.se/forum/showthread.php?t=7217)

Ejerhed 2005-04-07 05:43

Jag är inget bra på formellt dataspråk, men hoppas ni förstår ändå. ;)

http://localhost/default.asp?sida=it...2&maingroup=45

Sidan som ska hämta informationen från querystringen (som jag tror det heter) ovanför får endast med informationen fram till &
Alltstå: http://localhost/default.asp?sida=it...secondgroup=12

Hur kan jag komma runt detta? Jag måste väl använda & om jag ska hämta information från fler än ett fält i databasen?

Reserverar mig för massa flumm och felstavningar i denna text då klockan är 05.38 och jag borde lagt mig för typ 5 timmar sidan. :blink:

digi 2005-04-07 07:17

Lite trött jag med så jag vet inte vad du pratar om, men en jag skulle ha skrivit:
http://localhost/default.asp?sida=it...2&maingroup=45

:)

andhol 2005-04-07 07:32

Är inte heller riktigt med på vad du menar, men bara så du tänker på det & tecken används för att separera olika "request" skall en request innehålla specialtecken såsom &,? m.m. rekommenderar i alla fall jag att du kollar lite mer på
Server.URLEncode eller Server.HTMLEncode så kommer du från vissa problem i alla fall.

/Anders Holgersson

Robert 2005-04-07 09:23

Testa:


localhost/default.asp?sida=item_list.asp?secondgroup=12& maingroup=45

...och se om det fungerar.

Lindahl 2005-04-07 15:14

& skulle jag nog inte rekommendera, vill minnas att w3's standard (html 4.01 strict) säger att &-tecken alltid skall skrivas som & i länkar. Kör istället på hexkoden, %1A (tror jag att det är)

kullervo 2005-04-07 18:21

Blindstyren! digitalUnit gav ju redan svaret på frågan. pereje hade råkat stoppa in ett ? istället för & =)

Lindahl 2005-04-07 19:10

Kullervo: Funderade faktiskt också på om det inte skulle vara så men sen fattade jag problemet som att han vill att datan item_list.asp?secondgroup=12&maingroup=45 skall skickas i parametern sida, alltså bara en enda parameter, inte tre. Om det är rätt tolkat vet jag dock inte.

Ejerhed 2005-04-07 20:29

Så nu har jag vaknat igen. B)

Jag tror att Baltiz kanske har förstått vad jag är ute efter.
item_list.asp?secondgroup=12&maingroup=45 ska användas som länk till en annan sida där sedan secondgroup och maingroup ska hämtas/läsas av.

Problemet är att länkens url bara blir http://localhost/item_list.asp?secondgroup=12
Maingroup faller alltså bort, så den länkade sidan hämtar inte den information jag vill ha från databasen.

Förstår ni problemet bättre nu? Jag är sämst på att förklara… :unsure:

Tyvärr fungerade varken & eller %1A för mig när jag testade.

Lindahl 2005-04-07 21:01

Oki, %26 ska det vara så bör det funka finfint. Trodde att 26 var decimalt, men det var visst redan hexadecimalt =)

Fast det går ju att precis som Andhol säger att använda server.urlencode så slipper du hålla reda på alla teckens ascii-koder.

andhol 2005-04-07 21:16

Precis, enklast är att ta för vana att köra

Server.URLEncode("det_du_vill_säkerställa_som_URL" )

då kommer man slippa allt vad dessa bekymmer är =)

/Anders Holgersson

Ejerhed 2005-04-07 21:50

Gaah blir galen, varken %26 eller server.urlencode funger när jag testar. Sista delen av strängen försvann ändå…

Jag har säkert gjort något annat fel också som jag inte själv förstår. Lägger ut koden hela vägen så kanske någon orkar titta på den.

Meningen med koden är att hålla kvar ramarna då någon besöker en undersida via en sökmotor. Alltså en egen keep in frame gjord av en amatör. :)

------------------------------------------------------------------------------------------------------------

Sida1, xxx.asp

<script LANGUAGE="JavaScript">

if (parent.location.href == self.location.href) {
window.location.href = 'default.asp?sida=item_list.asp?maingroup=<% = request("maingroup")%>&secondgroup=<% = ("secondgroup")%>';
}

</script>

------------------------------------------------------------------------------------------------------------

Sida2, default.asp

<frame name="center" src="shop.asp?sida=<% =Request.Querystring("sida")%>">

------------------------------------------------------------------------------------------------------------

Sida3, shop.asp (en ny framesida)

<%
sida1=request.Querystring("sida")

if sida1="" then
sida1="main.asp"
end if
%>

<FRAME SRC="<% =(sida1) %>" NAME="main">

Lindahl 2005-04-07 22:11

Det borde funka om du ändrar i javascriptet till:

window.location.href = 'default.asp?sida=item_list.asp%3fmaingroup%3d<%=r equest("maingroup")%>%26secondgroup%3d<%=request(" secondgroup")%>'

Sen hade jag använt följande javascriptkod som inte sabbar historyn:
if (parent.location.href == self.location.href) {
if (window.location.href.replace)
window.location.replace('sida.html');
else
window.location.href = 'sida.html';
}

Ejerhed 2005-04-07 22:34

Det där med historyn var ju jätte bra. Man lär sig alltid nått nytt :)

Dessvärre fungerade det fortfarande inte, trots att jag ändra om till
window.location.href = 'default.asp?sida=item_list.asp%3fmaingroup%3d<%=r equest("maingroup")%>%26secondgroup%3d<%=request(" secondgroup")%>'

kullervo 2005-04-08 00:36

Eller så byter du bara ut ? och & mot andra tecken. Även om det skulle fungera nu kanske det blir problem då du uppgraderar till senare ASP. Att köra en querystring i en querystring är nog inget som står specat i ASP-standarden hur det ska fungera *. localhost/default.asp?sida=item_list.asp§secondgroup=12$main group=45

Edit: * Gissar bara nu. Har ingen erfarenhet av ASP, men det låter långsökt om det fanns specat hur det ska fungera.

Ejerhed 2005-04-08 04:27

Nu har jag fått det att fungera iallafall, ändrade om så att den bara behövde skickas en gång istället för två.

Hur är det med keep in frame script och sökmotorsoptimering? Robotarna gillar inte det va?


Alla tider är GMT +2. Klockan är nu 02:25.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson