webForumDet fria alternativet

Kolla om sträng har värde!

ASP

20 svar · 340 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#1

Hej hej!
Jag har lite problem med att kolla om en RequestQuerystring har något värde.

Det är så att jag har en sida man skall kunna läsa meddelanden på, varje meddelande har ett unikt ID, såklart. Men om man bara skriver namnet på sidan, det vill säga "meddelanden.asp" och inte har med något värde (meddelanden.asp?message=1) så får man upp felsida som avslöjar en hel del smaskig information om vart bl.a. databasen ligger.

Så hur ska jag göra för att kolla om strängen för med sig något och skriva ut ett eget meddelande om att meddelandet inte finns om den inte har nåt värde?

Medlem sedan juni 200032 967 inlägg
#2
If request.querystring("message") = "" then
    ' kod här som ska köras när querystringen inte har något värde
else
    ' resten av koden här
end if

Ibland är det enklare än man tror. :)

edit: snabeln är en klantpelle.

Medlem sedan juli 20015 107 inlägg
#3
<%
If request.querystring("ID") then
'wiii querystringen finns
else
'vad håller han på med?
End if
%>
Medlem sedan mars 20033 686 inlägg
#4

Uuuuuunderbart...tack så mycket.

@nders

Jag har redan provat ditt, men det fungerade inte :( alltså innan jag frågade här. Jag trodde det kanske skulle vara något mer än den lilla koden :)

Tack för hjälpen

Medlem sedan juni 200032 967 inlägg
#5

Det borde inte behövas något mer en det jag skrev (och redigerade in ;) ) ovan. :)

Men huvudsaken är ju att du löser problemet. :)

Mvh

Medlem sedan mars 20033 686 inlägg
#6

Okej, tack :D
ska pröva snart, men just nu är det problem med brinkster :)

Medlem sedan mars 20033 686 inlägg
#7
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id ='. 

/themad/db/Medlems sida test/readmessage.asp, line 89

Jippiii ;)

Medlem sedan mars 20033 686 inlägg
#8

Request.Querystring = TOM! med andra ord :(

Medlem sedan juni 200032 967 inlägg
#9

Vad är det för querystring du försöker använda i SQL-frågan då? Det är samma som du ska kontrollera i if-satsen. ;)

Visa hur din kod ser ut nu.

Mvh

Medlem sedan mars 20033 686 inlägg
#10

Jupp....
Det är alltså ett Id som följer med meddelandets rubrik som är en länk sidan innan. men om man inte har nåt värde vill jag skriva utt ett litet meddelande :)

Medlem sedan mars 20033 686 inlägg
#11
<%
If Request.Querystring("message") = "" Then
%>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("message.mdb")
SQL = "SELECT * FROM meddelanden WHERE Id = " & Request.Querystring("message") & ""
Set rs = db.Execute(SQL)
%>

<%
If Session("username") = rs("till") Then
%>

<%
Do until rs.EOF
%>

<span style=font-size=15>
<b>
<%=rs("rubrik")%>
</b>
<br>
<span style=font-size=12>
<b>Från</b>: <%=rs("fran")%>
<br>
<b>Skickat</b>: <%=rs("datum")%>
<br>
<%=rs("meddelande")%>

<%
rs.MoveNext
Loop
%>

<%
Else
Response.Write "Nejdu"
End If
%>

Ojdå jag såg visst att jag skrivit Else och End If en gång för mycket. Men nu komemr detta meddelande upp:

Microsoft VBScript compilation error '800a03f6' 

Expected 'End' 

/themad/db/Medlems sida test/readmessage.asp, line 182
Medlem sedan juni 200032 967 inlägg
#12

edit:

Läs mitt första inlägg igen.
Så som du har skrivit koden nu så gör du ju det som ska göras när qureystringen har ett värde, endast när det inte har ett värde.

Medlem sedan mars 20033 686 inlägg
#13

Men va dum man kan vara!!!
Sorry ja ska fixa till koden och kolla om det går bättre....
Tack för ert tålamod :)

Medlem sedan mars 20033 686 inlägg
#14

Jaha och nu får jag detta:
Microsoft VBScript compilation error '800a03f6'

Expected 'End'

/themad/db/Medlems sida test/readmessage.asp, line 174

Else
^

med denna kod:

<%
If Request.Querystring("message") = "" Then
Response.Write "Nejdu"
Else
%>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("message.mdb")
SQL = "SELECT * FROM meddelanden WHERE Id = " & Request.Querystring("message") & ""
Set rs = db.Execute(SQL)
%>
<%
If Session("username") = rs("till") Then
%>
<%
Do until rs.EOF
%>
<span style=font-size=15>
<b>
<%=rs("rubrik")%>
</b>
<br>
<span style=font-size=12>
<b>Från</b>: <%=rs("fran")%>
<br>
<b>Skickat</b>: <%=rs("datum")%>
<br>
<%=rs("meddelande")%>
<%
rs.MoveNext
Loop
%>
<%
End If
%>
Medlem sedan juli 20015 107 inlägg
#15

du saknar en END IF tagg till följande IF sats som du startat
<%
If Session("username") = rs("till") Then
%>

R:/ man ska inte på fika medan man skriver inlägg då missar man endel :P

Medlem sedan mars 20033 686 inlägg
#16

Längst nere i koden...

Medlem sedan mars 20033 686 inlägg
#17

Oj ja det har du rätt i.
Alltså ursäkte mig om jag frågar så enkla frågor, men detta är svårt ;)

Medlem sedan mars 20033 686 inlägg
#18

Weeeee....det fungerar!
Jag blir så glad när det fungerar, nu måste jag köpa kakor och mjölk :D

Trevlig helg pojkar (HA ;) ), hörs (för jag lär komma tillbaks med fler problem) :D

Medlem sedan juni 200032 967 inlägg
#19
  1. du har väldigt många onödiga context-switchar (<% %>) i din kod, rensa.
  2. Om du indenterar din kod ordentligt så är det betydligt lättare att se vad som saknas när det gäller if-satser.
<%
If Request.Querystring("message") = "" Then
	Response.Write "Nejdu"
Else
	Set db = Server.CreateObject("ADODB.Connection")
	db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("message.mdb")
	SQL = "SELECT * FROM meddelanden WHERE Id = " & Request.Querystring("message") & ""
	Set rs = db.Execute(SQL)
	If Session("username") = rs("till") Then

		Do until rs.EOF
			%>
			<span style=font-size=15>
			<b>
			<%=rs("rubrik")%>
			</b>
			<br>
			<span style=font-size=12>
			<b>Från</b>: <%=rs("fran")%>
			<br>
			<b>Skickat</b>: <%=rs("datum")%>
			<br>
			<%=rs("meddelande")%>
			<%
			rs.MoveNext
		Loop
	End If
%>

När koden nu är indenterad, ser du att det är en End If som saknas till den yttersta if-satsen.

Medlem sedan mars 20033 686 inlägg
#20

Shit alltså, du är ju för underbar :)

Tack så mycket. Men anledningen till att jag har många switchar är för att jag testade lite, du vet, vill vara på den säkra sidan (och nej fråga inte varför, detta är en så kallad fix ide) men jag brukar alltid fixa till koden när jag ska lägga upp sidan "på riktigt".

Tack så jätte mycket i alla fall

Mvh Magnus Fernström

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)