Avatar billede excession Nybegynder
05. april 2002 - 00:12 Der er 19 kommentarer og
1 løsning

har set mig blind..

Hej

Jeg har set mig blind på det her tror jeg..

koden skulle gerne abandon sessions brugeren trykker på logout kanppen, men man kan stadig komme ind på sider man ikke burde..

nogen der kan se en fejl?:

set rslog = server.createobject("ADODB.Recordset")

brugernavn=request.form("brugernavn")
password=request.form("password")


If Request.Form("submit") = "login" Then

    brugernavn = Trim(Replace(Request.Form("brugernavn"),"'",""))
    password = Trim(Replace(Request.Form("password"),"'",""))


        If Len(brugernavn) > 0 And Len(password) > 0 then



            SQLlog = "SELECT * FROM bruger WHERE (brugernavn = '" & brugernavn & "') AND (password = '" & password & "')"

            rslog.open SQLlog, Conn


                            loginfejl=""
                            IF (rslog.BOF OR rslog.EOF) THEN
                                loginfejl= "Der er fejl i brugernavn eller password. Prøv venligst igen"

                            ELSE

                                brugernavn = rslog("brugernavn")
                                Session("brugernavn") = brugernavn


                            END IF
        end if

end if

IF request.form("submit") = "logout" THEN
Session.Abandon()
END IF

'rslog.close
Conn.close
'set rslog = nothing
set Conn = nothing



'response.redirect request.servervariables("HTTP_REFERER")
IF Session("brugernavn") <> "" THEN
response.redirect "admin.asp"
ELSE
response.redirect "login.asp"
END IF

%>
Avatar billede erikjacobsen Ekspert
05. april 2002 - 00:14 #1
din form?
Avatar billede excession Nybegynder
05. april 2002 - 00:15 #2
login.asp:

<form name="login" METHOD="POST" ACTION="loginkode.asp">
<table width="250" border="0">
  <tr>
    <td>brugernavn : </td>
    <td><input type="text" name="brugernavn" class="forms"></td>
  </tr>
  <tr>
    <td>password : </td>
    <td><input type="password" name="password" class="forms"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="login" class="forms"></td>
  </tr>

</table>
</form>

admin.asp:

<form name="login" METHOD="POST" ACTION="loginkode.asp">
<table border="0">
  <tr>
    <td><input type="submit" name="submit" value="logout" class="forms"></td>
  </tr>

</table>
</form>
Avatar billede excession Nybegynder
05. april 2002 - 00:17 #3
og i admin.asp er har jeg også tilføjet denne kode for at checke om der er en Session("brugernavn")..

IF isEmpty(Session("brugernavn")) THEN
response.redirect "login.asp"
END IF

men det kan stadig lade sig gøre at komme ind på siden..

jeg kan bare ikke se hvad jeg har gjort forkert denne gang
Avatar billede erikjacobsen Ekspert
05. april 2002 - 00:18 #4
admin? Du kan kun slå din egen sesson ned. Ikke andres, hvis
ellers det er hvad du prøver på.
Avatar billede excession Nybegynder
05. april 2002 - 00:20 #5
det er min egen session jeg skal slå ihjel.. eller alle der logger ind og får oprettet Session("brugernavn") og derefter logger ud skal have det slået ihjel..
Avatar billede erikjacobsen Ekspert
05. april 2002 - 00:20 #6
Men ellers kan man jo komme ind på siderne, hvis du
ikke i toppen af hver eneste side checker at man er
logget ind. Hvordan gør du det?
Avatar billede excession Nybegynder
05. april 2002 - 00:21 #7
IF isEmpty(Session("brugernavn")) THEN
response.redirect "login.asp"
END IF
Avatar billede larsen1 Nybegynder
05. april 2002 - 01:00 #8
Kan du også komme ind på siden og refreshe?
Det drillede nemlig mig idag....
Avatar billede erikjacobsen Ekspert
05. april 2002 - 01:04 #9
Ah, larsen, du mener siderne er cachede på klienten. Ja, det
er en spændende teori.

Er det tilfældet skal spørgeren blot i headeren på hver side sørge
for at sætte caching fra.
Avatar billede excession Nybegynder
05. april 2002 - 01:05 #10
nej jeg kan ikke refreshe siden, men jeg kan gå logge ind, logge ud så gå ind på siden uden problemer, så logge ud igen og gå ind på siden igen osv..

jeg tænkte også på om det kunne være at det cachede siden, men det undrer mig bare

er der ikke noget at man kan sætte en tidsperiode hvor den cacher?
Avatar billede excession Nybegynder
05. april 2002 - 01:08 #11
det er sådan set det samme kode jeg bruger på andre sites uden at det cacher på den måde..

en anden mærkelig ting er at når jeg trykker opdater efter at have logget ud og gået ind på siden igen så smider den mig over på login.asp, men viser stadig admin.asp i adresselinien..

..men jeg bruger hverken server.execute eller server.transfer?
Avatar billede excession Nybegynder
05. april 2002 - 01:09 #12
jeg mener man kan vha ASP bestemme hvilke sider der skal caches.. nogen der ved noget om det?
Avatar billede excession Nybegynder
05. april 2002 - 01:11 #13
hmm simpelt faktisk: response.expires = 0 eller måske bedre med -1441
Avatar billede excession Nybegynder
05. april 2002 - 01:14 #14
response.expires løser problemet, men meget mærkelig at den viste admin.asp i adresselinien..

vil i ikke smide et svar ind så jeg kan give jer point?

-- xs
Avatar billede larsen1 Nybegynder
05. april 2002 - 01:17 #15
når jeg laver tilsvarende login, viser den også det "forkerte" filnavn i adresselinien. Det er dog til at overleve...
Avatar billede excession Nybegynder
05. april 2002 - 01:18 #16
response.expires = minutes  i øvrigt
Avatar billede torbenmelander Nybegynder
05. april 2002 - 06:34 #17
Når du laver en Session.Abandon skal du være opmærksom på at Sessiionen først bliver afbrudt når siden er generet til sidste linie ...

Hvis indholdet skal forsvinde med det samme, altså når du skriver kommandoen skal du bruge:

Session.Contents.RemoveAll()
Avatar billede excession Nybegynder
05. april 2002 - 11:20 #18
nå men larsen får point da det var pga ham at jeg fik løst problemet..

tak for jeres svar og kommentarer

-- xs
Avatar billede larsen1 Nybegynder
05. april 2002 - 11:27 #19
Takker! =)
Avatar billede larsen1 Nybegynder
05. april 2002 - 11:29 #20
Tænk at få point i et spørgsmål hvor erikjacobsen deltager. (3.plads)

Det er for vildt! Inden længe ligger jeg på førstepladsen! =)
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