webForumDet fria alternativet

Problem med värde i querystring

6 svar · 262 visningar · startad av leniz

lenizMedlem sedan aug. 2001676 inlägg
#1

Hej!

Någon som förstår detta?

Bildnummer skickas iväg i en querystring, det kan antingen vara 1 eller 2.

Sedan kontrolleras det hela så här:

bildnummer=1
(det får automatiskt värdet 1 först)

sedan...

						if len(trim(request("bildnummer"))) \> 0 and isnumeric(request("bildnummer")) = true  then
						bildnummer=request("bildnummer")
						end if

Här kommer problemet in. Bild nummer 2 visas aldrig trots att bildnummer=2 är skickad i querystringen.

Detta kollas nämligen längre ned i koden med

if bildnummer=1 then

respektive

if bildnummer=2 then

Vad kan det vara för fel?
Kan också nämna att det fungerar utmärkt på min IIS men inte på webbhotellet.

Mvh Lena

@ndersMedlem sedan juni 200032 969 inlägg
#2

Man ska alltid se till att man har koll på sina subtyper. Jag skulle föreslå en typkonvertering, så du kan jämföra med tal:

if len(trim(request("bildnummer"))) > 0 and isnumeric(request("bildnummer")) = true then 
bildnummer=[b]clng(request("bildnummer"))[/b]
end if

Mvh,

lenizMedlem sedan aug. 2001676 inlägg
#3

Hej!

Tack för ditt svar.
Tyvärr fungerar det inte ändå =(

Några andra idéer?

Mvh Lena

@ndersMedlem sedan juni 200032 969 inlägg
#4

Hmm, det verkar konstigt.

Kan vi få se lite mer kod, sammanhängande?

Mvh

lenizMedlem sedan aug. 2001676 inlägg
#5

Visst, här kommer en bunt!

<%
bildnummer=1
if len(trim(request("bildnummer"))) > 0 and isnumeric(request("bildnummer")) = true then
bildnummer=clng(request("bildnummer"))

						end if

						bildraknare=0
						sql = "select \* from bilder where stugID = " & stugID
						set rs = stugdatabas.Execute(sql)
						do until rs.eof
						bildraknare=bildraknare + 1
						rs.movenext
						loop

						if bildraknare = 1 then
						sql = "select \* from v_alla_detaljer where stugID = " & stugID
						set rs = stugdatabas.Execute(sql)
						 if rs("bild") = "tombild.gif" then 
                                                    %\>
                                                    \<img src="img/tombild2.gif" height="120" width="250"\>
                                                    \<%
                                                    else
						%\>
						\<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%"  style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"\>
							\<tr\>
								\<td bgcolor="ffffff"\>\<img src="img/\<%=rs("bild")%\>" width="\<%=rs("bredd")%\>" height="\<%=rs("hojd")%\>" alt="\<%=rs("Bildkommentar")%\>"\>\</td\>
							\</tr\>
							\<%if rs("Bildkommentar")\<\> "" and rs("Bildkommentar") \<\> " "  then%\>
							\<tr\>
								\<td valign="top" width="100%" bgcolor="000000"\>
								\<table cellpadding="2" width="100%"\>
									\<tr\>
										\<td width="100%"\>\<center\>
										\<span class="vittext11"\>\<%=rs("bildkommentar")%\>\</span\>\<br\>
										\</td\>
									\</tr\>
								\</table\>
								\</td\>
							\</tr\>
							\<%end if
                                                  		  %\>
						\</table\>
            					\<%end if

						else

						if bildnummer=1 then
						sql = "select top 1 \* from bilder where stugID = " & stugID
						set rs = stugdatabas.Execute(sql)

                                                    if rs("bild") = "tombild.gif" then 
                                                    %\>
                                                    \<img src="img/tombild2.gif" height="120" width="250"\>
                                                    \<%
                                                    else
						%\>
						\<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%"  style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"\>
							\<tr\>
								\<td bgcolor="ffffff"\>\<img src="img/\<%=rs("bild")%\>" width="\<%=rs("bredd")%\>" height="\<%=rs("hojd")%\>" alt="\<%=rs("Bildkommentar")%\>"\>\</td\>
							\</tr\>
							\<%if rs("Bildkommentar")\<\> "" and rs("Bildkommentar") \<\> " "  then%\>
							\<tr\>
								\<td valign="top" width="100%" bgcolor="000000"\>
								\<table cellpadding="2" width="100%"\>
									\<tr\>
										\<td width="100%"\>\<center\>
										\<span class="vittext11"\>\<%=rs("bildkommentar")%\>\</span\>\<br\>
										\</td\>
									\</tr\>
								\</table\>
								\</td\>
							\</tr\>
							\<%end if
                                                  		  %\>
								\<tr\>
								\<td valign="top" width="100%" bgcolor="555555"\>
								\<table cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"\>
									\<tr\>
										\<td width="100%"\>\<center\>
										\<a href="stuga.asp?stugid=\<%=rs("stugid")%\>&bildnummer=2"\>\<font color="ffffff"\>\<span class="text11"\>Nästa bild &raquo;\</span\>\</font\>\</a\>
										\</td\>
									\</tr\>
								\</table\>
								\</td\>
							\</tr\>
						\</table\>
            					\<%end if
					
						end if
						if bildnummer=2 then

						sql = "select top 1 \* from bilder where stugID = " & stugID & " order by bild asc"
						set rs = stugdatabas.Execute(sql)

                                                    if rs("bild") = "tombild.gif" then 
                                                    %\>
                                                    \<img src="img/tombild2.gif" height="120" width="250"\>
                                                    \<%
                                                    else
						%\>
						\<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%"  style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"\>
							\<tr\>
								\<td bgcolor="ffffff"\>\<img src="img/\<%=rs("bild")%\>" width="\<%=rs("bredd")%\>" height="\<%=rs("hojd")%\>" alt="\<%=rs("Bildkommentar")%\>"\>\</td\>
							\</tr\>
							\<%if rs("Bildkommentar")\<\> "" and rs("Bildkommentar") \<\> " "  then%\>
							\<tr\>
								\<td valign="top" width="100%" bgcolor="000000"\>
								\<table cellpadding="2" width="100%"\>
									\<tr\>
										\<td width="100%"\>\<center\>
										\<span class="vittext11"\>\<%=rs("bildkommentar")%\>\</span\>\<br\>
										\</td\>
									\</tr\>
								\</table\>
								\</td\>
							\</tr\>
							\<%end if
                                                  		  %\>
							\<tr\>
								\<td valign="top" width="100%" bgcolor="555555"\>
								\<table cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"\>
									\<tr\>
										\<td width="100%"\>\<center\>
										\<a href="stuga.asp?stugid=\<%=rs("stugid")%\>&bildnummer=1"\>\<font color="ffffff"\>\<span class="text11"\>Föregående bild &raquo;\</span\>\</font\>\</a\>
										\</td\>
									\</tr\>
								\</table\>
								\</td\>
							\</tr\>
						\</table\>
            					\<%end if
						end if
						end if%\>
@ndersMedlem sedan juni 200032 969 inlägg
#6

Det där var inte speciellt läsvänligt. Jag indenterade koden för att kunna läsa den överhuvudtaget, och här kommer den innanför kodtaggar:

<% 
bildnummer=1 
if len(trim(request("bildnummer"))) > 0 and isnumeric(request("bildnummer")) = true then 
	bildnummer=clng(request("bildnummer")) 
end if 

bildraknare=0 
sql = "select * from bilder where stugID = " & stugID 
set rs = stugdatabas.Execute(sql) 
do until rs.eof 
	bildraknare=bildraknare + 1 
	rs.movenext 
loop 

if bildraknare = 1 then 
	sql = "select * from v_alla_detaljer where stugID = " & stugID 
	set rs = stugdatabas.Execute(sql) 
	if rs("bild") = "tombild.gif" then 
		%> 
		<img src="img/tombild2.gif" height="120" width="250"> 
		<% 
	else 
		%> 
		<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"> 
		<tr> 
		<td bgcolor="ffffff"><img src="img/<%=rs("bild")%>" width="<%=rs("bredd")%>" height="<%=rs("hojd")%>" alt="<%=rs("Bildkommentar")%>"></td> 
		</tr> 
		<%if rs("Bildkommentar")<> "" and rs("Bildkommentar") <> " " then%> 
			<tr> 
			<td valign="top" width="100%" bgcolor="000000"> 
			<table cellpadding="2" width="100%"> 
			<tr> 
			<td width="100%"><center> 
			<span class="vittext11"><%=rs("bildkommentar")%></span><br> 
			</td> 
			</tr> 
			</table> 
			</td> 
			</tr> 
		<%end if 
		%> 
		</table> 
	<%end if 
else 
	if bildnummer=1 then 
		sql = "select top 1 * from bilder where stugID = " & stugID 
		set rs = stugdatabas.Execute(sql) 
		if rs("bild") = "tombild.gif" then 
			%> 
			<img src="img/tombild2.gif" height="120" width="250"> 
			<% 
		else 
			%> 
			<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"> 
			<tr> 
			<td bgcolor="ffffff"><img src="img/<%=rs("bild")%>" width="<%=rs("bredd")%>" height="<%=rs("hojd")%>" alt="<%=rs("Bildkommentar")%>"></td> 
			</tr> 
			<%if rs("Bildkommentar")<> "" and rs("Bildkommentar") <> " " then%> 
				<tr> 
				<td valign="top" width="100%" bgcolor="000000"> 
				<table cellpadding="2" width="100%"> 
				<tr> 
				<td width="100%"><center> 
				<span class="vittext11"><%=rs("bildkommentar")%></span><br> 
				</td> 
				</tr> 
				</table> 
				</td> 
				</tr> 
			<%end if 
			%> 
			<tr> 
			<td valign="top" width="100%" bgcolor="555555"> 
			<table cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"> 
			<tr> 
			<td width="100%"><center> 
			<a href="stuga.asp?stugid=<%=rs("stugid")%>&bildnummer=2"><font color="ffffff"><span class="text11">Nästa bild »</span></font></a> 
			</td> 
			</tr> 
			</table> 
			</td> 
			</tr> 
			</table> 
		<%end if 
	end if 

	if bildnummer=2 then 
		sql = "select top 1 * from bilder where stugID = " & stugID & " order by bild asc" 
		set rs = stugdatabas.Execute(sql) 
		if rs("bild") = "tombild.gif" then 
			%> 
			<img src="img/tombild2.gif" height="120" width="250"> 
			<% 
		else 
			%> 
			<table bgcolor="ffffff" cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"> 
			<tr> 
			<td bgcolor="ffffff"><img src="img/<%=rs("bild")%>" width="<%=rs("bredd")%>" height="<%=rs("hojd")%>" alt="<%=rs("Bildkommentar")%>"></td> 
			</tr> 
			<%if rs("Bildkommentar")<> "" and rs("Bildkommentar") <> " " then%> 
				<tr> 
				<td valign="top" width="100%" bgcolor="000000"> 
				<table cellpadding="2" width="100%"> 
				<tr> 
				<td width="100%"><center> 
				<span class="vittext11"><%=rs("bildkommentar")%></span><br> 
				</td> 
				</tr> 
				</table> 
				</td> 
				</tr> 
			<%end if 
			%> 
			<tr>	 
			<td valign="top" width="100%" bgcolor="555555"> 
			<table cellpadding="0" cellspacing="0" width="100%" style="border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px" bordercolor="000000"> 
			<tr> 
			<td width="100%"><center> 
			<a href="stuga.asp?stugid=<%=rs("stugid")%>&bildnummer=1"><font color="ffffff"><span class="text11">Föregående bild »</span></font></a> 
			</td> 
			</tr> 
			</table> 
			</td> 
			</tr> 
			</table> 
		<%end if 
	end if 
end if%>

Min fråga är: Hur vet du att det aldrig väljs bild 2? I din kod ser det ut som att det absolut kan väljas samma bild, eftersom du bara har order by i den andra (för bildnummer 2), och dessutom asc, vilket innebär att bild 1 borde komma överst, och därmed borde vara den som kommer när bildnummer är 2.

Lägg med en sortering på din första sql-fråga, order by bild asc, och ändra till desc i den andra, så kanske det blir bättre?

lenizMedlem sedan aug. 2001676 inlägg
#7

Hej!
Nej jag såg just att det inte blev så bra med koden inklistrad så där. Ber om ursäkt.
Jag testade med desc först men då fungerade det inte i min IIS så därför ändrade jag till asc och då gick det bra där. Förstår fortfarande inte hur det kan skilja sig mellan IIS och webbhotellet...
Nu fungerar det dock bra på webbhotellet så jag tackar och bockar!
/Lena

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)