Avatar billede tahoo Nybegynder
02. maj 2005 - 16:25 Der er 6 kommentarer og
1 løsning

password med session

Hej Eksperten

Jeg har lavet et login system via session, hvor jeg bruger dette til at se om folk skriver det rigtige password / brugernavn:


Login.asp
-------------------------------------------------------------
<%

' Så folk ikke kan snyde.. (så let)
bruger = Trim(Replace(Request.Form("bruger"),"'",""))
password = Trim(Replace(Request.Form("password"),"'",""))

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={mysql}; Server=xx.xx.xx.xx; Port=3306; Option=1123; Socket=; Stmt=; Database=x; Uid=x; Pwd=x;"
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "Select * From password"
rs.open strSQL, conn, 1, 3


If bruger = rs("bruger") AND password = rs("password") Then

' Hvis korrekt sættes session til JA
  Session("login1") = 1
  Session.Timeout = 240

  response.redirect "index2.asp"

Else

' Hvis forkert sættes ingen session til NEJ
  Session("login1") = 0
  Session.Timeout = 15

  Response.redirect "index.asp"
end If


rs.Close
set strSQL = nothing
set rs = nothing
Conn.Close
%>

-------------------------------------------------------------

I toppen af alle min asp filer har jeg denne kode :

sikkerfil.asp
-------------------------------------------------------------
<%
If Session("login1") <> 1 Then
  Response.Redirect "index.asp"
End If
%>

-------------------------------------------------------------

Så kommer mit problem, når jeg skal logge ind på siden skal jeg logge ind 2 gange før jeg kommer ind...

Jeg er 100 % sikker jeg skriver det rigtige brugernavn og password første gang..

Dvs. skal jeg logge ind på siden skal jeg gøre følgende:

1.) Gå ind på login siden:
2.) Skriver brugernavn + passowrd trykker login..
fejl jeg kommer ikke ind men bliver sendt tilbage til index.asp altså login siden igen.

3.) Skriver brugernavn + passowrd trykker login..

Så kommer jeg ind og alt virker fint...
Det virker ligesom at den ikke husker at jeg sætter session til en værdi, før jeg har prøvet at gøre det 2 gange...

Kan nogle hjælpe..
Avatar billede tahoo Nybegynder
02. maj 2005 - 16:30 #1
lige en lille fejl i tekst :
' Hvis korrekt sættes session til 1
' Hvis forkert sættes ingen session til 0
Avatar billede busschou Praktikant
02. maj 2005 - 21:03 #2
Det er nok ikke det
Men at sætte sessionen til 0 hvis en bruger ikke har angivet korrekt kode. Det er egentlig overflødigt (med mindre du bruger det til noget?)
Når du tester om Session("login1") <> 1 , så bliver man også smidt af hvis sessionen slet ikke eksisterer :o)
Endvidere hvis du allerede er på index.asp. Så er redirectet også overflødig, altså at redirecte til sig selv....
Avatar billede tahoo Nybegynder
02. maj 2005 - 21:46 #3
>> busschou

Ja det er jeg helt med på.. - men det er detsvære bare ikke fejlen... :o(

Tak for din kommentar..
Avatar billede fennec Nybegynder
03. maj 2005 - 08:23 #4
Det er din select. Du vælger jo alle poster i tabellen, men som jeg kan se det tjekker du kun logindet med den første post. Prøv i stedet at select den post fra tabellen som passer med bruger og password. Hvis du så får et resultat kan man logge ind, ellers er brugeren ikke i databasen:

strSQL = "Select * From password where bruger='"& bruger &"' and password='"& password &"'"
rs.open strSQL, conn, 1, 3

If not rs.eof Then
' Hvis bruger eksistere sættes session til JA
  Session("login1") = 1
  Session.Timeout = 240
  response.redirect "index2.asp"
Else
' Hvis bruger ikke eksistere sættes session til NEJ
  Session("login1") = 0
  Session.Timeout = 15
  Response.redirect "index.asp"
end If
Avatar billede tahoo Nybegynder
03. maj 2005 - 12:41 #5
>>fennec

Ja sådan kan man jo også gøre :o) - smart nok...

Men det giver mig bare 100 % samme fejl...

Det er lidt underlig...
Avatar billede tahoo Nybegynder
03. maj 2005 - 13:07 #6
nu fik jeg det til at virke...

Tak for hjælpen fennec, jeg havde lige en response.redirect med http, som der skulle slettes...
Avatar billede fennec Nybegynder
03. maj 2005 - 13:22 #7
Og en forklaring:
Når man bruger "http://..." på en redirect bliver der laven en ny forbindelse til servernen, og man mister derfor session. "http://" skal derfor kun med når man skal connecte til et helt andet domæne.

Og tak for point
.o) <-- One Eyed Jack
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