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.
20 svar · 340 visningar · startad av magnusfernstrom
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?
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.
<%
If request.querystring("ID") then
'wiii querystringen finns
else
'vad håller han på med?
End if
%>
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
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
Okej, tack :D
ska pröva snart, men just nu är det problem med brinkster :)
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 ;)
Request.Querystring = TOM! med andra ord :(
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
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 :)
<%
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
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.
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 :)
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
%>
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
Längst nere i koden...
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 ;)
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
<%
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.
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