Avatar billede larsen45 Juniormester
23. marts 2006 - 23:52 Der er 30 kommentarer og
1 løsning

Bruger level login funktion med asp og access database

Hejsa og godaften Eksperter

Hvordan kan jeg modificere dette her så jeg kan få

Forbindelse til access database.
Glemt password funktion.
Opret ny bruger funktion.
Level opdelt med 1.2.3. så jeg som admin kan have mit i fred uden andre kan se det, og så bruger login som kun se asp sider som jeg giver lov til.

Generelt sørge for at sikkerheden på login funktionen er nogenlunde god så hackere ikke kan bryde ind med lethed og sådan uden videre.



loginformular.asp
----------------
<html>
<title>tid og dato</title>
<head>
</head>
<body>
<form method="post" action="login.asp">
<p style="margin-top: 0; margin-bottom: 0">Login:<p style="margin-top: 0; margin-bottom: 0"><input type="text" name="login">
<p style="margin-top: 0; margin-bottom: 0">Password:<p style="margin-top: 0; margin-bottom: 0"><input type="text" name="password">
<p style="margin-top: 0; margin-bottom: 0"><input type="submit" value="luk mig ind">
</form>
</body>
</html>





login.asp
----------------
<html>
<title>logintjek</title>
<head>
</head>
<body>
<%
' Tjek om login og password er korrekte
If Request.Form("login") = "asp" AND Request.Form("password") = "asp" 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.Write "<p><a href='loginok.asp'>Link til beskyttet fil</a></p>"

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='loginformular.asp'>Fejl du er ikke logget ind korrekt</a></p>"

End If
%>
</body>
</html>



loginok.asp
----------------
<%
' Hvis brugeren ikke er logget rigtigt på
' sendes han/hun direkte til formularen
If Session("login") <> "JA" Then
  Response.Redirect "loginformular.asp"
End If
%>
<html>
<title>tid og dato</title>
<head>
</head>
<body>
<h1>Dette dokument er beskyttet og kan kun ses hvis man er logget ind</h1>
</body>
</html>


Jeg uddybere lidt mere her.
----------------------------
Jeg skal bruge det til at administrerer en hjemmeside med admin del til mig selv hvor jeg kan styrer ting som nyheder og gæstebog og andet hvor siderne skal være sikret så andre ikke kan se dem.Den anden del jeg skal bruge det til er at virksomheder som jeg søger job hos, kan logge ind og se mit CV og dataliste og ansøgning m.v. på et andet brugerlevel i databasen. Så hvis man kan lave 3 levels ialt ville det være godt.

Jeg håber på at i kan hjælpe mig eksperter for jeg står i den lidt klemte situation at jeg skal have det op og stå snarest muligt.
Avatar billede Slettet bruger
24. marts 2006 - 00:03 #1
Hejsa

For lige at øge sikkerheden lidt vil jeg anbefale dig at du sætter din session til noget unikt som for eksempel id´en i databasen ud for pågældende bruger... og så skal tjek-scriptet se sådan her ud:
<%
' Hvis brugeren ikke er logget rigtigt på
' sendes han/hun direkte til formularen
If (Session("login") = "" OR isnull(session("login")) OR session("login") = 0 OR session("login") = "0") Then
  Response.Redirect "loginformular.asp"
End If
%>
<html>
<title>tid og dato</title>
<head>
</head>
<body>
<h1>Dette dokument er beskyttet og kan kun ses hvis man er logget ind</h1>
</body>
</html>

- og så når man logger ud (altså klikker på logout) skal denne handling ske:

<%
session("login") = 0
%>

\Dan
Avatar billede Slettet bruger
24. marts 2006 - 00:06 #2
Det med brugerlevels vil jeg anbefale dig at du laver en kolonne i tabellen i databasen som hedder e.g. "level"...
og at du så på hver side laver et tjek på hvilken levels som har adgang hertil...
for eksempel hvis det er en side som har level 2:
<%
if NOT rs("level") <= 2 then
response.write "INGEN ADGANG"
else
%>

- din side...

<%end if%>

\Dan
Avatar billede larsen45 Juniormester
24. marts 2006 - 00:29 #3
Hej dannielsen
tak for din hurtige hjælp.

Jeg har oprettet en ny database med
navn:logindatabase
Tabel: logintabel

Id        Autonummerering
brugernavn Tekst
password  Notat
level      Tal
ip        Notat
---------------------------------


Jeg har på siden loginok.asp indsat og rettet efter dine anvisninger til:
<%
If (Session("login") = "" OR isnull(session("login")) OR session("login") = 0 OR session("login") = "0") Then
  Response.Redirect "loginformular.asp"
%>


Angående det med levels må du meget gerne uddybe så jeg forstår hvordan jeg kan give adgang til 1 level 2 level 3 level på den måde så level 1 som skal være admin kan se alt og level 2 kun kan se level 2 og level 3 kun kan se level 3 hvis du forstår mig ret.

Jeg mangler også at få gang i database forbindelsen hvordan gør jeg lige det.
Så jeg kan få kontakt til min nye database.
Avatar billede larsen45 Juniormester
24. marts 2006 - 01:36 #4
Sidder der flere eksperter derunde som er vågen på denne tid af natten som kan hjælpe mig.
Avatar billede fennec Nybegynder
24. marts 2006 - 08:41 #5
Session tjekket kan gøres kortere:
if not isNumeric(Session("login")&"") then
  Response.Redirect "loginformular.asp"
end if
(kræver at Session("login") pr default er "" og ikke 0)

Dernæst ville jeg gemme level i en session også. Så kan du lave dette tjek:

Kun level 1 access:
if session("level") <> 1 then
  response.write "INGEN ADGANG"
  response.end
end if

Level 2 access:
if session("level") > 2 then
  response.write "INGEN ADGANG"
  response.end
end if

Level 3 access:
Ingen tjek da ALLE aligevel har adgang :o)
Avatar billede larsen45 Juniormester
24. marts 2006 - 12:25 #6
fennec tak for din hjælp det skal være sådan at Level 1 er: admin og level 2: virksomheder og level 3: brugere

Okay jeg prøver lige at holde hovedet koldt i det her.
Hvordan skal login.asp se ud så jeg kan få adgang til databasen
og tjekke om password og brugernavn er korrekt. + sende dem tilbage til loginformular.asp siden hvis det er forkert. Eller korrekt videre til loginok.asp
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../db/logindatabase.mdb")
Conn.Open DSN

strQuery = "SELECT * FROM password WHERE brugernavn='" & brugernavn & "'"
Set rs = Conn.Execute(strQuery)

Do While Not rs.EOF
Avatar billede fennec Nybegynder
24. marts 2006 - 12:36 #7
brugernavn = replace(request.form("user"),"'","''")
passWord = replace(request.form("pass"),"'","''")

strQuery = "SELECT * FROM password WHERE brugernavn='" & brugernavn & "' and password='"& passWord &"'"
Set rs = Conn.Execute(strQuery)
if rs.eof then
  'Forkert bruger/pass
  response.redirect("loginside.asp")
else
  session("login") = rs("ID")
  session("level") = rs("level")
  response.redirect("enEllerAndenSide.asp")
end if
Avatar billede larsen45 Juniormester
24. marts 2006 - 13:19 #8
Jeg håber at dette her er korrekt sat sammen:

login.asp
---------------
<%

' Tjek om login og password er korrekte
brugernavn = replace(request.form("brugernavn"),"'","''")
password = replace(request.form("password"),"'","''")

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

strQuery = "SELECT * FROM logintabel WHERE brugernavn='" & brugernavn & "' and password='"& password &"'"
Set rs = Conn.Execute(strQuery)
if rs.eof then

' Brugernavn og Password forkert
  response.redirect("loginformular.asp")
else
' Brugernavn og Password korrekt
  session("login") = rs("ID")
  session("level") = rs("level")
  Session.Timeout = 30
  response.redirect("loginok.asp")
end if

%>

Hvis det er ok hvad for nogle ændringer skal jeg så lave med: loginformular.asp og loginok.asp for at få det til at virke.

For på siden loginok.asp skal jeg vel have det der level tjek ind om man er admin eller anden. og samtidigt sikre sig at andre ikke kan komme ind på lige netop den side.

på loginformular.asp ved jeg ikke lige hvilke ændringer der skal til for at få det til at virke. Jeg tænker også på at medtage folk ip når de prøver at logge ind så man kan se hvem det er hvis der skulle blive et problem med hackere som prøver at bryde ind.
Avatar billede fennec Nybegynder
24. marts 2006 - 13:33 #9
På alle sider som skal beskyttes af login (f.eks loginok.asp) skal du have dette ind i toppen:
if not isNumeric(Session("login")&"") then
  Response.Redirect "loginformular.asp"
end if

På alle sider, som kun en bestemt level må se, skal du have dette ind lige efter den førbeskrevet if sætning:
if not isNumeric(Session("login")&"") then
  Response.Redirect "loginformular.asp"
end if
'Kun level 1 access:
if session("level") <> 1 then
  response.write "INGEN ADGANG"
  response.end
end if

eller:
if not isNumeric(Session("login")&"") then
  Response.Redirect "loginformular.asp"
end if
'Level 2 access (level 1 kan stadig se denne, men ikke level 3):
if session("level") > 2 then
  response.write "INGEN ADGANG"
  response.end
end if
Avatar billede larsen45 Juniormester
24. marts 2006 - 14:08 #10
ja admin skal kunne se alle 3 levels
og level 2 skal kun se level 2 og level 3 kun level 3.


Hvad mangler jeg på loginformular.asp siden for jeg kan ikke få lov til at logge ind.
--------------

<html>
<title>tid og dato</title>
<head>
</head>
<body>
<form method="post" action="login.asp">
<p style="margin-top: 0; margin-bottom: 0">Login:<p style="margin-top: 0; margin-bottom: 0"><input type="text" name="login">
<p style="margin-top: 0; margin-bottom: 0">Password:<p style="margin-top: 0; margin-bottom: 0"><input type="text" name="password">
<p style="margin-top: 0; margin-bottom: 0"><input type="submit" value="luk mig ind">
</form>
</body>
</html>
Avatar billede larsen45 Juniormester
24. marts 2006 - 14:48 #11
hov nu fik jeg vist gang i login delen jeg indsatte:
<input type="text" name="brugernavn" value="<%=brugernavn%>">
<input type="text" name="password" value="<%=password%>">
og
If Request("mode") = "Check" then på login.asp siden.

jeg kan logge på og har testet:

<%
'Kun level 1 adgang:
if session("level") <> 1 then
    Response.Redirect "ingenadgang.asp"
  response.end
end if
%>

og

<%
'Kun level 1 og 2 adgang:
if session("level") > 2 then
  Response.Redirect "ingenadgang.asp"
  response.end
end if
%>

Men hvad nu hvis jeg vil have det sådan at alle skal kunne se det hvordan skal koden så lige se ud. Det vil sige level 1-2-3.

og det andet senarie hvor kun level 1 og level 3 må se det og ikke level 2.
Avatar billede larsen45 Juniormester
24. marts 2006 - 22:49 #12
Glemt password funktion
Hvad mangler jeg at gører her for at få det til at virke:

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

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

email = replace(Request.Form("email"),"'","''")
strSQL = "SELECT * FROM tabel WHERE email = '" & email & "';"
Set rs = Conn.Execute(strSQL)

if not rs.EOF then

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "smtp bla bla"
JMail.Sender = "min Email"
JMail.SenderName = "hjemmeside login system"
JMail.Subject = "Password til login funktion"
JMail.AddRecipient rs("email")
JMail.Priority = 1
JMail.Silent = true
JMail.ContentType = "text/plain"
JMail.Charset = "ISO-8859-1"
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Body = body

body = "Du har bedt om at få tilsendt dit password til hjemmeside login system." & vbCrLf
body = body & "Dit brugernavn er: " & rs("brugernavn") & vbCrLf
body = body & "Dit password er: " & rs("password")

JMail.Close
Set JMail = Nothing

Response.Write "En mail med dit password er send til dig!" & vbCrLf
Response.Write "Med venlig hilsen!" & vbCrLf
Response.Write "hjemmeside / Robot" & vbCrLf
Else
Response.Write "Der opstod en fejl. Mailen er ikke sendt - prøv igen!"
 
  RS.Close
    Conn.Close
  End if
End if
%>
Avatar billede larsen45 Juniormester
25. marts 2006 - 13:12 #13
Er der slet ingen som har tid til at hjælpe mig???????????
Avatar billede fennec Nybegynder
27. marts 2006 - 08:29 #14
Nu har det jo været weekend, hvorfor vi ikke nødvendigvis er på E :o)

Du mangler faktist kabe at sende mailen og smide noget i bodyen:

body = "Du har bedt om at få tilsendt dit password til hjemmeside login system." & vbCrLf
body = body & "Dit brugernavn er: " & rs("brugernavn") & vbCrLf
body = body & "Dit password er: " & rs("password")
JMail.Body = body
if not JMail.Send() then
  response.write "mailen blev ikke sendt"
else
  Response.Write "En mail med dit password er send til dig!" & vbCrLf
  Response.Write "Med venlig hilsen!" & vbCrLf
  Response.Write "hjemmeside / Robot" & vbCrLf
end if
Avatar billede fennec Nybegynder
27. marts 2006 - 08:31 #15
Tror faktisk det er:
if not JMail.Execute() then

Nå du har "JMail.ServerAddress = xxx" i koden, så prøv evt med den også...
Avatar billede larsen45 Juniormester
27. marts 2006 - 11:42 #16
Super fennec det virker perfekt.
Jeg er nu kommet et godt stykke videre det som jeg nu sidder og kæmper med er hvordan jeg kan få dette her op og stå:

Husk login
Autologin

Hvordan gør jeg det hvor man har en kryds af boks til Husk login og
en til Autologin hvor der bliver sat et flueben i.
Avatar billede fennec Nybegynder
27. marts 2006 - 12:31 #17
Der skal du skrive/læse fra en cookie.

Skrive
Response.Cookies("CookieNavn")("navn") = Request("Username")
Response.Cookies("CookieNavn")("pass") = Request("PassWord")
Response.Cookies("CookieNavn").Expires = Date+365

Læse:
GreenName = Request.Cookies("CookieNavn")("navn")
GreenPass = Request.Cookies("CookieNavn")("pass")

CookieNavn sætter man gerne til domænenavnet.

Du kan så læse om der ligger noget i cookien, også har du "husk login". Autologin kan også smides ind i cookien, og hvis den er true, køre du dit loginscript.
Avatar billede larsen45 Juniormester
27. marts 2006 - 13:12 #18
Okay smart nok.
Nu skal jeg dog lige forstå det helt rigtigt på min formular hvor login siden er
har jeg sat dettte her ind.

<p><input type="checkbox" value="afkrydning" name="huskmig"> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig"> Autologin</p>

Håber det er korrekt gjort.

Så siger du at jeg skal indsætte dette her på siden som tjekker at login er ok eller forkert fra min formular.

Response.Cookies("CookieNavn")("navn") = Request("Username")
Response.Cookies("CookieNavn")("pass") = Request("PassWord")
Response.Cookies("CookieNavn").Expires = Date+365

Jeg har dette her på asp tjek login siden:
--------------------------
if rs.eof then

' Brugernavn og Password forkert
  response.redirect "adgangloginformularen.asp?error1=Forkert password eller brugernavn"
else
' Brugernavn og Password korrekt
  session("login") = rs("ID")
  session("level") = rs("level")
  Session.Timeout = 60

'og så Cookie
  Response.Cookies("CookieNavn")("navn") = Request("Username")
  Response.Cookies("CookieNavn")("pass") = Request("PassWord")
  Response.Cookies("CookieNavn").Expires = Date+365
Avatar billede fennec Nybegynder
27. marts 2006 - 13:27 #19
Du skal kun skrive i cookien hvis en af checkboxene er afkrydset, også skal du nok også skrive den fulde request:

...
session("level") = rs("level")
Session.Timeout = 60
if request.form("huskmig") <> "" or request.form("Autologmig") <> "" then
  Response.Cookies("CookieNavn")("navn") = Request.form("Username")
  Response.Cookies("CookieNavn")("pass") = Request.form("PassWord")
  if request.form("Autologmig") <> "" then
    Response.Cookies("CookieNavn")("autoLogin") = "1"
  else
    Response.Cookies("CookieNavn")("autoLogin") = "0"
  end if
  Response.Cookies("CookieNavn").Expires = Date+365
end if
Avatar billede larsen45 Juniormester
27. marts 2006 - 13:55 #20
hmm har lige prøvet synes bare ikke lige jeg kan få det til at virker.
Der er et eller andet galt i det her:
----------------------------------------
if rs.eof then

' Brugernavn og Password forkert
  response.redirect "adgangloginformularen.asp?error1=Forkert password eller brugernavn"
else
' Brugernavn og Password korrekt
  session("login") = rs("ID")
  session("level") = rs("level")
  Session.Timeout = 60

if request.form("huskmig") <> "" or request.form("Autologmig") <> "" then
  Response.Cookies("Cookielogin")("brugernavn") = Request.form("brugernavn")
  Response.Cookies("Cookielogin")("password") = Request.form("password")
  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  Response.Cookies("Cookielogin").Expires = Date+365
end if


  response.redirect("bla bla side.asp")


  RS.Close
    Conn.Close
End if
End if
%>

Jeg logger fint nok ind men den husker bare ikke mig i Husk login eller Autologin.
Har prøvet at lukke EI Browseren ned og starte den igen og logge på og jeg har forsøgt at logge ind og ud igen og bare søge rundt på google efter nået tilfældigt og så gå tilbage til login formularen. For mig ser det kun ud til at den vil tage session lige nu.
Avatar billede fennec Nybegynder
27. marts 2006 - 14:14 #21
At det ligger i en cookie er ikke ensbetydende med at du automatisk logger ind. Det skal du kode dig til.
F.eks at udfylde formfelterne med værdierne fra cookien:
User: <input type="Text" name="brugernavn" value="<%= Request.Cookies("CookieNavn")("navn") %>"><br>
Pass: <input type="Password" name="password" value="<%= Request.Cookies("CookieNavn")("pass") %>">
Avatar billede larsen45 Juniormester
27. marts 2006 - 14:47 #22
okay prøv lige at se her:

har følgende felter:
<form method="POST" action="logintjek.asp" style="word-spacing: 0; margin: 0">
<input type="hidden" name="mode" VALUE="Check">

Login<p>&nbsp;<input type="text" name="brugernavn" value="<%=brugernavn%>" size="26" style="font-size: 9px">
</p>
<p>Password:</p>
<p>&nbsp;<input type="text" name="password" value="<%=password%>" size="26" style="font-size: 9px"></p>
<p><input type="checkbox" value="afkrydning" name="huskmig"> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig"> Autologin</p>
<input type="submit" value="Login" name="submit" style="font-size: 14px; float:left; font-family:Tahoma">
</form>

Skal jeg indsætte de 2 linier som erstatning for?:
<input type="checkbox" value="afkrydning" name="huskmig"> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig"> Autologin</p>
For dem der tjekker password og brugernavn i forvejen skal jeg vel ikke ændre på.
Avatar billede fennec Nybegynder
27. marts 2006 - 14:55 #23
Som du har det her, skal du bare smide det i brugernavn og password variablerne:

<form method="POST" action="logintjek.asp" style="word-spacing: 0; margin: 0">
<input type="hidden" name="mode" VALUE="Check">
<%
brugernavn = Request.Cookies("CookieNavn")("navn")
password = Request.Cookies("CookieNavn")("pass")
%>
Login<p>&nbsp;<input type="text" name="brugernavn" value="<%=brugernavn%>" size="26" style="font-size: 9px">
</p>
<p>Password:</p>
<p>&nbsp;<input type="text" name="password" value="<%=password%>" size="26" style="font-size: 9px"></p>
<p><input type="checkbox" value="afkrydning" name="huskmig"> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig"> Autologin</p>
<input type="submit" value="Login" name="submit" style="font-size: 14px; float:left; font-family:Tahoma">
</form>

Så skulle de 2 felter gerne blive udfyldt automatisk når du kommer ind på siden. Du skal dog stadig klikke på "login" knappen for at logge ind...
Avatar billede larsen45 Juniormester
27. marts 2006 - 15:26 #24
ja super nu viser den teksten i brugernavn og password hvis jeg nu har lukket browseren ned og genstartet og gået ind på login formularen siden.

Men kan man ikke også sikre sig sådan at hvis man har valgt: Husk login og Autologin at der også kommer hak / kryds i felterne i det man har valgt. Sådan at man ikke skal til at udfylde dem igen.
Og en anden ting når man har valgt Auto login så skal man ikke se login formularen indenfor de der 60 minutter som session kører lige nu. Hvor man automatisk bliver sendt videre til start siden i loginsystemmet.
Avatar billede fennec Nybegynder
27. marts 2006 - 15:35 #25
1. Gem afkrydsningerne i cookien (havde allerede den ene):
  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  if request.form("huskmig") <> "" then
    Response.Cookies("Cookielogin")("huskmig") = "1"
  else
    Response.Cookies("Cookielogin")("huskmig") = "0"
  end if

Så kan du aftjekke checkboksene:
<p><input type="checkbox" value="afkrydning" name="huskmig" <% if Request.Cookies("CookieNavn")("huskmig") = "1" then response.write "checked" %>> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig" <% if Request.Cookies("CookieNavn")("autoLogin") = "1" then response.write "checked" %>> Autologin</p>
Avatar billede fennec Nybegynder
27. marts 2006 - 15:37 #26
2. kan klares med et cookie tjek sammen med <body> taget:

<body <% if Request.Cookies("CookieNavn")("autoLogin") = "1" then response.write "onLoad=""document.dinFormsNavn.submit();"" %>>
Avatar billede larsen45 Juniormester
27. marts 2006 - 21:13 #27
puha er nået forvirret lige nu.
Jeg skal altså have dette det sådan her i min formular:

<% if Request.Cookies("CookieLogin")("autoLogin") = "1" then response.write "onLoad=""document.mode.submit();"" %>>
<input type="checkbox" value="afkrydning" name="huskmig" <% if Request.Cookies("CookieCookielogin")("huskmig") = "1" then response.write "checked" %>> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig" <% if Request.Cookies("CookieCookielogin")("autoLogin") = "1" then response.write "checked" %>> Autologin</p>

min formular start ser sådan ud:
--------------------------------------
<form method="POST" action="bla bla minside.asp" style="word-spacing: 0; margin: 0">
<input type="hidden" name="mode" VALUE="Check">


på min asp tjek side står det lige nu sådan her:
---------------------------------------------------
if rs.eof then

' Brugernavn og Password forkert
  response.redirect "adgangloginformularen.asp?error1=Forkert password eller brugernavn"
else
' Brugernavn og Password korrekt
  session("login") = rs("ID")
  session("level") = rs("level")
  Session.Timeout = 60


  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  if request.form("huskmig") <> "" then
    Response.Cookies("Cookielogin")("huskmig") = "1"
  else
    Response.Cookies("Cookielogin")("huskmig") = "0"
  end if


if request.form("huskmig") <> "" or request.form("Autologmig") <> "" then
  Response.Cookies("Cookielogin")("brugernavn") = Request.form("brugernavn")
  Response.Cookies("Cookielogin")("password") = Request.form("password")
  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  Response.Cookies("Cookielogin").Expires = Date+365
end if


  response.redirect("adgangloginok3.asp")


  RS.Close
    Conn.Close
End if
%>
Avatar billede fennec Nybegynder
28. marts 2006 - 13:21 #28
<% if Request.Cookies("CookieLogin")("autoLogin") = "1" then response.write "onLoad=""document.mode.submit();"" %>

Skal du have flyttet op på dit <body> tag:
<body <% if Request.Cookies("CookieNavn")("autoLogin") = "1" then response.write "onLoad=""document.dinFormsNavn.submit();"" %>>
...
MERE HTML/ASP KODE
...
<form method="POST" action="logintjek.asp" style="word-spacing: 0; margin: 0">
<input type="hidden" name="mode" VALUE="Check">
<%
brugernavn = Request.Cookies("CookieNavn")("navn")
password = Request.Cookies("CookieNavn")("pass")
%>
Login<p>&nbsp;<input type="text" name="brugernavn" value="<%=brugernavn%>" size="26" style="font-size: 9px">
</p>
<p>Password:</p>
<p>&nbsp;<input type="text" name="password" value="<%=password%>" size="26" style="font-size: 9px"></p>
<p><input type="checkbox" value="afkrydning" name="huskmig" <% if Request.Cookies("CookieNavn")("huskmig") = "1" then response.write "checked" %>> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig" <% if Request.Cookies("CookieNavn")("autoLogin") = "1" then response.write "checked" %>> Autologin</p>
<input type="submit" value="Login" name="submit" style="font-size: 14px; float:left; font-family:Tahoma">
</form>
Avatar billede larsen45 Juniormester
28. marts 2006 - 14:20 #29
hej fennec jeg synes stadig jeg laver ged i det.

for denne fejl her:
---------------------------
Microsoft VBScript compilation error '800a0409'

Unterminated string constant

line 59

if Request.Cookies("Cookielogin")("autoLogin") = "1" then response.write "onLoad=""document.mode.submit();""


formular siden
------------------------
<body>
<form method="POST" action="logintjek.asp" style="word-spacing: 0; margin: 0">
<input type="hidden" name="mode" VALUE="Check">
<%
brugernavn = Request.Cookies("Cookielogin")("brugernavn")
password = Request.Cookies("Cookielogin")("password")
%>


<table style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #eeeeee" width="150">
    <tr>
        <td align="center" bgcolor="#000000">
        <p style="margin-top: 0; margin-bottom: 0"><font color="#EEEEEE">
        Login</font></td>
    </tr>
    <tr>
        <td align="left">
        <p align="center" style="margin-top: 0; margin-bottom: 0"><i>
        <font size="1" face="Tahoma">(Begge felter skal udfyldes)</font></i></td>
    </tr>
    <tr>
        <td width="141" align="left">
<p style="margin-top: 0; margin-bottom: 0"><font size="1" face="Tahoma">Brugernavn:</font></td>
    </tr>
    <tr>
        <td width="141" align="left">
<p style="margin-top: 0; margin-bottom: 0">
<font size="1" face="Tahoma">
<input type="text" name="brugernavn" value="<%=brugernavn%>" size="26" style="font-size: 9px">
</font>
        </td>
    </tr>
    <tr>
        <td width="141" align="left">
<p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="1">Password:</font></td>
    </tr>
    <tr>
        <td width="141" align="left">
<p style="margin-top: 0; margin-bottom: 0">
<font size="1" face="Tahoma">
<input type="text" name="password" value="<%=password%>" size="26" style="font-size: 9px">
</font></td>
    </tr>
    <tr>
        <td width="141" align="left">
       
<p style="margin-top: 0; margin-bottom: 0">



Login<p style="margin-top: 0; margin-bottom: 0"><input type="text" name="brugernavn" value="<%=brugernavn%>" size="26" style="font-size: 9px">
</p>


<body <% if Request.Cookies("Cookielogin")("autoLogin") = "1" then response.write "onLoad=""document.mode.submit();"" %>>
<p style="margin-top: 0; margin-bottom: 0">
<input type="checkbox" value="afkrydning" name="huskmig" <% if Request.Cookies("Cookielogin")("huskmig") = "1" then response.write "checked" %>> Husk login<br>
<input type="checkbox" value="afkrydning" name="Autologmig" <% if Request.Cookies("Cookielogin")("autoLogin") = "1" then response.write "checked" %>> Autologin</p>
<p style="margin-top: 0; margin-bottom: 0"></p>


        <p align="center" style="margin-top: 0; margin-bottom: 0">
        <font size="1" face="Tahoma">
        <input type="submit" value="Login" name="submit" style="font-size: 14px; float:left; font-family:Tahoma"></font><p style="margin-top: 0; margin-bottom: 0">
        <font size="1" color="#FF0000" face="Tahoma">
        <!--webbot bot="HTMLMarkup" startspan --><% Response.Write Request.Querystring("error1") %>


<!--webbot bot="HTMLMarkup" endspan --></font></td>
    </tr>
</table>
</form>
</body>






Siden som tjekker login og sender en videre:
----------------------
<html>
<title></title>
<head>
</head>
<body>
<%
If Request("mode") = "Check" then

' Tjek om login og password er korrekte
brugernavn = replace(request.form("brugernavn"),"'","''")
password = replace(request.form("password"),"'","''")

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

strQuery = "SELECT * FROM logintabel WHERE brugernavn='" & brugernavn & "' and password='"& password &"'"
Set rs = Conn.Execute(strQuery)

if rs.eof then

' Brugernavn og Password forkert
  response.redirect "formularen.asp?error1=Forkert password eller brugernavn"
else
' Brugernavn og Password korrekt
  session("brugernavn")=rs("id")
  session("login") = rs("id")
  session("level") = rs("level")
  Session.Timeout = 60


  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  if request.form("huskmig") <> "" then
    Response.Cookies("Cookielogin")("huskmig") = "1"
  else
    Response.Cookies("Cookielogin")("huskmig") = "0"
  end if


if request.form("huskmig") <> "" or request.form("Autologmig") <> "" then
  Response.Cookies("Cookielogin")("brugernavn") = Request.form("brugernavn")
  Response.Cookies("Cookielogin")("password") = Request.form("password")
  if request.form("Autologmig") <> "" then
    Response.Cookies("Cookielogin")("autoLogin") = "1"
  else
    Response.Cookies("Cookielogin")("autoLogin") = "0"
  end if
  Response.Cookies("Cookielogin").Expires = Date+365
end if


  response.redirect("duerloggetind.asp")


  RS.Close
    Conn.Close
End if
End if
%>
</body>
</html>
Avatar billede fennec Nybegynder
31. marts 2006 - 13:08 #30
Det var min fejl. Der skal være 3 " til sidst i linjen:
... response.write "onLoad=""document.mode.submit();"""
Avatar billede larsen45 Juniormester
23. maj 2011 - 00:06 #31
lukker
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