Avatar billede cult Nybegynder
17. januar 2005 - 18:28 Der er 9 kommentarer og
1 løsning

If, Then, Else i forb. med Sessions/DB

Hey....

Jeg er ved at kode et system hvor brugerne kan skrive beskeder til hinanden via hjemmesiden.
Systemet virker som sådan også, men jeg er nu stødt på et problem da jeg forsøger at beskytte systemet mod at brugerne kan se andres beskeder.

Jeg henter en besked fra databasen vha. en QueryString, altså f.x. readmsg.asp?mid=1... Beskyttelsen skal til for at man ikke bare kan taste et andet nummer i adressefeltet, og så lsæe de andres beskeder.

Koden:
<%
strMessages = "SELECT * from Messages where MID=" & Request.QueryString("MID")
Set strMSG = Conn.Execute(strMessages)

If Session("UID") = strMSG("MToUID") Then

%>
<b>From:</b> <% =strMSG("MFrom") %>
<br><b>To:</b> <% =Session("Username") %>
<br><b>Date:</b> <% =strMSG("MDate") %>
<br><b>Subject:</b> <% =strMSG("MSubject") %>
<br><br>
<b>Message:</b>
<br>
<br>
<% =strMSG("Message") %>

<%
Else
Response.Write "You do not have access to read this message."
%>
<% End if %>

Desværre skriver siden altid "You do not have acecss..." unanset om man er logget ind som den rigtige bruger eller ej.
Jeg har forsøgt at skrive både Session("UID") og strMSG("MToUID") ud, og begge giver "1", så de er ens....

Hvorfor vil siden så ikke vise beskeden når brugeren er korrekt ?

På forhånd tak :)
Avatar billede moocher Nybegynder
17. januar 2005 - 18:32 #1
If (Session("UID") == strMSG("MToUID")) Then

Mener jeg
Avatar billede cult Nybegynder
17. januar 2005 - 18:35 #2
Desværre nej... den giver mig en fejl ved 2. lighedstegn.
Avatar billede moocher Nybegynder
17. januar 2005 - 18:36 #3
så prøv bare med parenteserne og 1 lighed
Avatar billede cult Nybegynder
17. januar 2005 - 18:38 #4
Den ryger stadig ned til Else :(
Avatar billede moocher Nybegynder
17. januar 2005 - 18:40 #5
prøv at tilføje

Response.Write "You do not have access to read this message."
Response.Write strMSG("MToUID")
Response.Write Session("UID")
Avatar billede hmortensen Nybegynder
17. januar 2005 - 18:41 #6
Du kan prøve at parse begge dele som integer sådan her:

If Int(Session("UID")) = Int(strMSG("MToUID")) Then
Avatar billede cult Nybegynder
17. januar 2005 - 18:44 #7
hmortensen, det virker jo perfekt, smid lige et svar så du kan få nogle points...

Jeg vil selvfølgelig også gerne vide helt præcist hvilken funktion int( har så jeg også har lært lidt :)
Avatar billede moocher Nybegynder
17. januar 2005 - 18:46 #8
Den konventere tekst til tal i formatet integer
Avatar billede hmortensen Nybegynder
17. januar 2005 - 18:48 #9
En integer kan indeholde et heltal, og funktionen Int(), som moocher skriver, parser en streng som et tal.
Avatar billede cult Nybegynder
17. januar 2005 - 18:53 #10
jeg takker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester