Avatar billede cool_casper Nybegynder
04. januar 2003 - 06:30 Der er 16 kommentarer og
1 løsning

Probs med login sys

Hey!

Jeg har lidt problemmer med mit loginsys... Der findes på http://support-hp.dk.fairhost.dk/nye/login.asp !
Brugerinfo: User: test pass: test
Når jeg logger ind kommer jeg vil login_val.asp (som validere usernam og pass!) og så får jeg udskrevet et "0" og ikke andet... Ingen fejlmeddelser eller noget...

-------------------------------------------
Her er koden for login_val.asp:
-------------------------------------------

<%
user = LCase(Trim(Request("user")))
pass = LCase(Trim(Request("pwd")))
'If user = "" AND pass = "" then
'        FejlMsg = "<FONT COLOR=red>Error! No password/username!</FONT>"
        'Response.Redirect "login.asp?msg=" & fejlmsg
'End if

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/unsh61ot.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN



strSQL = "SELECT * FROM admins WHERE (Name='" & user & "' AND Password='" & pass & "')"
Set rs = myConn.Execute(strSQL)
If rs.Eof Or rs.Bof then
    strSQL2 = "SELECT * FROM helpers WHERE (Name='" & user & "' AND Password='" & pass & "')"
    Set rs = myConn.Execute(strSQL2)
    If rs.Eof Or rs.Bof then
        FejlMsg = "<FONT COLOR=red>Wrong password/username!</FONT>"
        Response.Redirect "login.asp?msg=" & fejlmsg
    Else
        Request.Session("Support-hp-login") = True
        Request.Session("Support-hp-loginname") = rs("name")
        Response.Redirect "userloggedin.asp"
    End if

Else
    Request.Session("Support-hp-login") = True
    Request.Session("Support-hp-loginname") = rs("name")
    Response.Redirect "userloggedin.asp"
End if
rs.Close
set rs = nothing
%>


-------------------------------------------
Avatar billede niceday Nybegynder
04. januar 2003 - 06:30 #1
Hvorfor bruger du Request.Session("xxxx") og ikke Session("xxx") ?
Avatar billede cool_casper Nybegynder
04. januar 2003 - 06:30 #2
Hm... Bare mig der husker forkert... Det er rettet, men stadig samme fejl...
Avatar billede niceday Nybegynder
04. januar 2003 - 06:30 #3
Jeg får timeout-fejl (får ikke svar fra serveren) på din side (flot design) - den kører på Access 2000 .. ik?
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:05 #4
Ja, det er rimelig langsom... Ja, det er Acces 2000!
Avatar billede niceday Nybegynder
04. januar 2003 - 16:21 #5
Hvis den kun skriver et '0' må det betyde at der er mere asp-kode på siden (f.eks. Response.Write et-eller-andet). Jeg får hele tiden timeout-fejl når jeg forsøger at logge ind. Er der forskel i 'fejlen' hvis du skriver rigtigt eller forkert login?

Du bør endvidere nok deklarerer din variabel FejlMsg:
Dim FejlMsg  (som det første i koden)
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:33 #6
Nej, det er ingen forskel... Dog har jeg fundet ud af hvis jeg logger korrekt ind, og trykker tilbage og på de sider der er beskyttet er den logget fint ind!
Det vil sige at der kommer langt nok ned i koden til at få de rigtige sessions ind!

Jeg plejer som regel at glemme deklarering, men i det tilfælde.. hehe... Så er der jo en del andre variabler der burde deklareres! :D
Men jeg har nu rettet det anyway! :D
Avatar billede niceday Nybegynder
04. januar 2003 - 16:33 #7
Nu kunne jeg logge ind. Din fejl tyder på at det ikke er ovenstående kode, som fremgår af filen, hvor du får '0' tilbage. Jeg er dog ikke sikker, men du skal nok prøve at afluse din kode og starte i det små hvor du finder ud af hvor fejlen kan ske i koden. Prøv f.eks. at indsætte nedenstående kode, som ved samme fejl betyder at det er dit kald den er gal med.

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/unsh61ot.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM admins WHERE (Name='test' AND Password='test')"
Set rs = myConn.Execute(strSQL)

If rs.Eof Or rs.Bof then
Response.Write "Korrekt kode og brugernavn"
Else
Response.Write "Forkert kode og brugernavn"
End if

rs.Close
set rs = nothing
%>
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:36 #8
Nu har jeg sat koden ind...!
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:38 #9
Nu har jeg prøvet med forskellige usernames og passes, men stadig samme fejl...
Avatar billede niceday Nybegynder
04. januar 2003 - 16:40 #10
Er du på messenger eller icq? Så kan vi løse den online og poste løsningen på dit problem online.

Jeg vil dog anbefale at du hurtigst skifter til MySql, da din database er utrolig langsom (Fairhost har MySql med i dit produkt).
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:42 #11
ICQ# 137680220 !
Avatar billede niceday Nybegynder
04. januar 2003 - 16:45 #12
Du skal lige acceptere mig på din icq :-)
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:50 #13
hmm... Jeg har da ikke modtaget noet...?

Sikker på at du har skrevet 137680220 ??
Avatar billede niceday Nybegynder
04. januar 2003 - 16:53 #14
Ja, den fortæller også det er caper som er på dette nummer.

Desuden har jeg lige tjekket din kode på min egen server - den melder ikke om fejl. Da koden er den samme tyder det på det ikke er den rigtige kode du tester.
Avatar billede cool_casper Nybegynder
04. januar 2003 - 16:55 #15
ok, hva er dit nr...??

Jeg er kommet lidt videre... Jeg har fundet ud af at når det er post, gør den der med 0-tallet og hvis jeg laver get virker den (næsten) !
Avatar billede niceday Nybegynder
04. januar 2003 - 16:58 #16
179491325
Avatar billede cool_casper Nybegynder
04. januar 2003 - 17:34 #17
Efter et lille stykke tids debugging fandt vi frem til at serveren ikke ville poste og vi fik rettet resten af fejlene til dette resultat:

<%
user = LCase(Trim(Request("user")))
pass = LCase(Trim(Request("pwd")))
'If user = "" AND pass = "" then
'        FejlMsg = "<FONT COLOR=red>Error! No password/username!</FONT>"
        'Response.Redirect "login.asp?msg=" & fejlmsg
'End if

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/unsh61ot.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN



strSQL = "SELECT name,password FROM helpers WHERE (Name='" & user & "')"
Set rs = myConn.Execute(strSQL)

If NOT rs.Eof Or NOT rs.Bof then

    If pass = Lcase(rs("password")) then
        Session("Support-hp-login") = True
        Session("Support-hp-loginname") = rs("name")
        Response.Redirect "userloggedin.asp"
    End if
Else


    strSQL2 = "SELECT name,password FROM admins WHERE (Name='" & user & "')"
    Set rs2 = myConn.Execute(strSQL2)
    If NOT rs2.Eof Or rs2.Bof then
        If rs2("password") = pass then
            Session("Support-hp-login") = True
            Session("Support-hp-loginname") = rs2("name")
            Response.Redirect "userloggedin.asp"
        End if

    Else
Response.Write "Du er hverken hjælper eller admin"
       
    End if

End if

rs.Close
set rs = nothing
%>
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