11. februar 2006 - 18:53Der er
33 kommentarer og 1 løsning
Husk mig funktion til eksisterende loginsystem
Hejsa
Har et loginsystem som virker perfekt, men kunne godt tænke mig en "Husk mig" funktion, skal kun huske oplysningerne og ikke selv logge ind.
Mit loginsystem:
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_brodre;UID=xxxx_xxxx;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 ' 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
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 %>
Du kan jo gemme brugernavn og password i cookies, hvis f.eks brugeren klikker en checkbox og derefter referere til cookies. ex. If Request("remember_password") = "1" Then Response.Cookies("username") = Request.Form("login") Response.Cookies("username").Expires = DateAdd("y", 1, Now()) Response.Cookies("password") = Request.Form("password") Response.Cookies("password").Expires = DateAdd("y", 1, Now()) End if
<% if lcase(Request.Cookies("login")("gem")) = "ja" then navn = Request.Cookies("login")("brugernavn") pass = Request.Cookies("login")("password") else navn = "" pass = "Password" end if %>
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_brodre;UID=xxxx_xxxx;PWD=xxxxxxxxxx;"
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 ' 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
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
if Request.Form("huskmig") <> "" then 'Gem cookien Response.Cookies("login")("brugernavn") = Request.Form("login") Response.Cookies("login")("password") = Request.Form("password") Response.Cookies("login")("gem") = "ja" Response.Cookies("login").Expires = Date+365 else 'Slet evt cookie if Request.Cookies("login")("brugernavn") <> "" then Response.Cookies("login")("brugernavn") = " XX " Response.Cookies("login")("password") = "XX" Response.Cookies("login")("gem") = "nej" Response.Cookies("login").Expires = Date-365 end if end if %>
Den husker ikke mit login, men logger ellers fint ind, ville bare have at når jeg besøger siden en anden gang har siden selv udfyldt brugernavn og password
Jeg foreslår du holder koden så overskuelig som muligt. Med ex. fra 11/02-2006 21:33:46 ligger den nye knap i samme form som det øvrige.
Hvis HUSKMIg submittes burde du kunne lave If (Request.form("huskmig") = "ja") Then Response.Cookies("username") = Request.Form("login") Response.Cookies("username").Expires = DateAdd("y", 1, Now()) Response.Cookies("password") = Request.Form("password") Response.Cookies("password").Expires = DateAdd("y", 1, Now()) End if
Prøv evt. at lave en response.write for at se om den køre koden i If (Request.form("huskmig") = "ja") Then
P.S Jeg når ikke at hjælpe mere idag, så jeg håber du får det løst eller at en anden på eksperten vil hjælpe videre (eller vi kan fortsætte en anden dag) :-)
Hvis dine nye cookies gemmes godt nok, så bliver næste udfordring, at tilpasse login, så der chekkes på og der står noget i dine cookies - altså:
Din form skal initiere nogle variable som sættes lig dine cookies, hver gang sidem loades. Noget a la:
If Response.Cookies("username") <> "" Then Varuser = Response.cookies("username") Varpassword = Response.cookies("password") Else varuser = "" Varpassword = "" End if
Indholdet i <td width="170px"><input type="text" name="login"></td> skal du tilføje <td width="170px"><input type="text" name="login"> Value="<%varuser%>"</td>
Okay - nogen gange tror man, at alle andre ved det samme som en selv!
Mit ex af 13/02-2006 17:58:44
Skulle være: Din form skal initiere nogle variable som sættes lig dine cookies, hver gang sidem loades. Noget a la:
If Request.Cookies("username") <> "" Then Varuser = Request.cookies("username") Varpassword = Request.cookies("password") Else varuser = "" Varpassword = "" End if
Indholdet i <td width="170px"><input type="text" name="login"></td> skal du tilføje <td width="170px"><input type="text" name="login"> Value="<%varuser%>"</td>
Håber det giver mening og hvis dine cookies bliver gemt, som du hævder, så får du værdierne med ovennævnte!
Jeg er glad for du gider hjælpe mig, men jeg er nybegynder på ASP og cookies, så du må undskylde, men det du skriver giver for mig ingen mening, du må meget gerne skrive helt præcis hvad jeg skal ændre, ellers fatter jeg minus ;O(
strSQL = "Select * From Brodre WHERE brugernavn = '" & Replace(Request.Form("brugernavn"),"'","''") & "'" Set rs = Conn.Execute(strSQL)
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
if loginTjek = true then Session("login") = "JA" Session.Timeout = 30 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
If (Request.form("huskmig") = "ja") Then 'Gem cookien Response.Cookies("brugernavn") = Request.Form("brugernavn") Response.Cookies("brugernavn").Expires = DateAdd("y", 1, Now()) Response.Cookies("password") = Request.Form("password") Response.Cookies("password").Expires = DateAdd("y", 1, Now()) end if %> </div> </div> </body> </html>
<!--#include file="template_fejl.html"--> <div class="content_center"> <% Dim Varuser, Varpassword
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=XXXX_brodre;UID=XXXX_XXXX;PWD=XXXXX;"
strSQL = "Select * From Brodre WHERE brugernavn = '" & Replace(Request.Form("brugernavn"),"'","''") & "'" Set rs = Conn.Execute(strSQL)
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
if loginTjek = true then Session("login") = "JA" Session.Timeout = 30 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
If (Request.form("huskmig") = "ja") Then 'Gem cookien Response.Cookies("brugernavn") = Request.Form("brugernavn") Response.Cookies("brugernavn").Expires = DateAdd("y", 1, Now()) Response.Cookies("password") = Request.Form("password") Response.Cookies("password").Expires = DateAdd("y", 1, Now()) end if %> </div> </div> </body> </html>
Gemmes brugernavn og password hvis du markere checkboxen? Som jeg lige læser din kode, så burde du, hvis ellers cookies gemmer de rigtige værdier, bare kunne klikke login!
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=XXXX_brodre;UID=XXXX_XXXX;PWD=XXXXX;"
strSQL = "Select * From Brodre WHERE brugernavn = '" & Replace(Request.Form("brugernavn"),"'","''") & "'" Set rs = Conn.Execute(strSQL)
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
if loginTjek = true then Session("login") = "JA" Session.Timeout = 30 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
Jeg har præcis som du har skrevet men det virker stadig ikke, har prøvet at slette gamle cookies og prøve igen, men virker heller ikke... fatter det bare ikke :o(
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=XXXX_brodre;UID=XXXX_XXXX;PWD=XXXXX;"
strSQL = "Select * From Brodre WHERE brugernavn = '" & request("un") & "'" Set rs = Conn.Execute(strSQL)
if not rs.eof then if rs("password") = session("pw") 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
if loginTjek = true then Session("login") = "JA" Session.Timeout = 30 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
Det hele virker nu, kan godt se jeg ikke var helt tæt på ;O(
Det er bare super, mange tak!
Synes godt om
Ny brugerNybegynder
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.