Avatar billede kimborg Nybegynder
11. februar 2006 - 16:28 Der er 7 kommentarer og
1 løsning

Loginfunktion med ASP+MySQL

Hej

Jeg har en database med ID, Brugernavn og Password (MySQL).
Jeg har også en loginfunktion (sessions), men den bruger et fælles password og ikke dem i min database, hvordan laver jeg det om.

Sådan ser det ud i dag:

default.asp:
<form method="post" action="login.asp">
<table border="0">
<tr>
  <td><p>Brugernavn:</td>
  <td width="170px"><input type="text" name="login"></td>
</tr>
<tr>
  <td><p>Password:</td>
  <td width="170px"><input type="password" name="password"></td>
</tr>
<tr>
  <td></td>
  <td><input type="reset" value="Nulstil">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Login"></td>
</tr>
</table>
</form>

Login.asp:
<%
' Tjek om login og password er korrekte
If Request.Form("login") = "xxxx" AND Request.Form("password") = "xxxxxxxx" Then

' Hvis korrekt sættes session til JA
  Session("login") = "JA"
  Session.Timeout = 30
  Response.Write "<h1>Du er nu logget korrekt ind</h1>"
  Response.Redirect "start.asp"

Else

' Hvis forkert sættes ingen session til NEJ
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
  Response.Write "<p><a href='default.asp'>Klik her for at prøve igen</a></p>"

End If
%>

Protect.asp:
<%
' Hvis brugeren ikke er logget rigtigt på
' sendes han/hun direkte til formularen
If Session("login") <> "JA" Then
  Response.Redirect "/login.asp"
End If
%>
Avatar billede musicchart.dk Nybegynder
11. februar 2006 - 17:38 #1
login.asp

strSQL = "Select * From users WHERE brugernavn = '" & Replace(Request.Form("login"),"'","''") & "'"
Set rs = Conn.Execute(strSQL)

if not rs.eof then
  if rs("password") = Replace(Request.Form("password"),"'","''") then
    loginTjek = true
  else
    loginTjek = false
else
  loginTjek = false
end if

if loginTjek = true then
  Session("login") = "JA"
  Session.Timeout = 30
  Response.Write "<h1>Du er nu logget korrekt ind</h1>"
  Response.Redirect "start.asp"
else
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
  Response.Write "<p><a href='default.asp'>Klik her for at prøve igen</a></p>"
end if
Avatar billede musicchart.dk Nybegynder
11. februar 2006 - 17:40 #2
du skal selv have en connection til din database du kalder 'conn'.
Og ændre 'users' til dit tabel navn.
Avatar billede kimborg Nybegynder
11. februar 2006 - 17:57 #3
Du har skrevet:

  else
    loginTjek = false
else
  loginTjek = false

er det ikke fejl??

Jeg får en fejl selvom jeg fjerner den ene af dem:

Expected 'End'
/Login/login.asp, line 27, column 24

filen ser nu sådan ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_xxxx;UID=xxxxx_xxxxx;PWD=xxxxxxxx;"

strSQL = "Select * From Brodre WHERE Brugernavn = '" & Replace(Request.Form("login"),"'","''") & "'"
Set rs = Conn.Execute(strSQL)

if not rs.eof then
  if rs("Password") = Replace(Request.Form("password"),"'","''") then
    loginTjek = true
  else
    loginTjek = false
end if

if loginTjek = true then
  Session("login") = "JA"
  Session.Timeout = 30
  Response.Write "<h1>Du er nu logget korrekt ind</h1>"
  Response.Redirect "start.asp"
else
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.Write "<h1>Du er IKKE logget korrekt ind</h1>"
  Response.Write "<p><a href='default.asp'>Klik her for at prøve igen</a></p>"
end if
%>

Håber du kan hjælpe lidt mere
Avatar billede musicchart.dk Nybegynder
11. februar 2006 - 18:02 #4
Nå ja, hehe:

if not rs.eof then
  if rs("password") = Replace(Request.Form("password"),"'","''") then
    loginTjek = true
  else
    loginTjek = false
  end if
else
  loginTjek = false
end if
Avatar billede musicchart.dk Nybegynder
11. februar 2006 - 18:04 #5
og nej, det er ikke en fejl med de 2 'loginTjek = false' :

if not rs.eof then
  if rs("password") = Replace(Request.Form("password"),"'","''") then
    ' du må godt logge ind, fordi dit brugernavn og kodeord passer sammen
    loginTjek = true
  else
    'du må ikke logge ind, hvis brugernavnet ikke passer sammen med kodeordet
    loginTjek = false
  end if
else
  'du må ikke logge ind, hvis dit brugernavn ikke findes
  loginTjek = false
end if
Avatar billede kimborg Nybegynder
11. februar 2006 - 18:16 #6
Det virker jo perfekt, du er genial ;O)

Ved du også hvordan jeg laver en "husk mig" funktion?
Avatar billede kimborg Nybegynder
11. februar 2006 - 18:50 #7
Lukkes........
Avatar billede musicchart.dk Nybegynder
11. februar 2006 - 18:53 #8
Hehe, genial er så meget sagt. Men godt du kunne få det til at virke... skal du have lavet en "husk mig" funktion, så skal du i gang med cookies.
Læs mere her:
http://www.html.dk/tutorials/asp/lektion13.asp

Og tak for point :o)
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