16. december 2003 - 13:35Der er
17 kommentarer og 1 løsning
husk mig funktion ved login
Hej!
Jeg har et eksisternde login-system, hvor jeg gerne vil have en "husk mig-funktion" tilføjet. Den skal ikke fungere som en "alm." cookie, men derimod check db'en for om brugeren har valgt denne funktion. Jeg har nogle problemer med at få dette implementeret i min eksisterende kode (ses nedenfor). Min database har et ja/nej felt i tabellen tblUser, der kaldes "Remember".
Assistance udbedes!
-- Start på kode -- <!--#include file="tools.asp"--> <% Session("../database/Admin")="" If Request("Submit")<>"" Then OpenDB con, "../database/Admin" SQL = "SELECT * FROM tblUser WHERE fldUserName='" & Request("UserName") & "' AND fldPassword='" & Request("Password") & "'" Set rs = con.Execute(SQL) If Not rs.EOF Then Session("../database/Admin") = rs("fldUserName") LogUser Session("../database/Admin"), "in" response.redirect "admin_frame.asp" End If End If %>
Det kan ikke lade sig gøre, hvis du ikke bruger en cookie til at gemme om ikke andet så brugerID eller brugernavn. Hvordan skal login siden eller gætte hvilken bruger det er som forsøger at logger ind også vælge de rigtige data.
Med denne kode-sammensætning kan jeg ikke få det til at virke!
<!--#include file="tools.asp"--> <%
if Request.Form("Remember") <> "" then 'Gem cookien Response.Cookies("login")("brugernavn") = Request.Form("UserName") Response.Cookies("login")("password") = Request.Form("Password") Response.Cookies("login")("remember") = "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")("remember") = "nej" Response.Cookies("login").Expires = Date-365 end if end if %>
<% if lcase(Request.Cookies("login")("remember")) = "ja" then username = Request.Cookies("login")("brugernavn") password = Request.Cookies("login")("password") else username = "" password = "Password" end if %>
<% Session("../database/Admin")="" If Request("Submit")<>"" Then OpenDB con, "../database/Admin" SQL = "SELECT * FROM tblUser WHERE fldUserName='" & Request("UserName") & "' AND fldPassword='" & Request("Password") & "'" Set rs = con.Execute(SQL) If Not rs.EOF Then Session("../database/Admin") = rs("fldUserName") LogUser Session("../database/Admin"), "in" response.redirect "admin_frame.asp" End If End If %>
if Request.Form("Remember") <> "" then 'Gem cookien Response.Cookies("login")("brugernavn") = Request.Form("UserName") Response.Cookies("login")("password") = Request.Form("Password") Response.Cookies("login")("remember") = "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")("remember") = "nej" Response.Cookies("login").Expires = Date-365 end if end if %>
Til:
<%
if Request.Servervariables("REQUEST_METHOD") = "POST" then if Request.Form("Remember") <> "" then 'Gem cookien Response.Cookies("login")("brugernavn") = Request.Form("UserName") Response.Cookies("login")("password") = Request.Form("Password") Response.Cookies("login")("remember") = "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")("remember") = "nej" Response.Cookies("login").Expires = Date-365 end if end if end if %>
Det hvis man fjerner krydset i remember me checkbox'en så skulle den gerne slette cookien, der kan måske være lidt bøvl med slet da man vist skal angive en værdi i cookien man kan ikke bare sætte væriden til tom ""
Kan jeg sætte dette ind på den side, brugeren kommer til efter at have logget ind, og vil det virke?:
If Request.Form("knap2") = "Slå husk mig fra" Then Response.Cookies("brugernavn").Expires = date() - 1 Response.Cookies("password").Expires = date() -1 End If
Ja det kkan du godt, det skal bare være ("login") cookien: If Request.Form("knap2") = "Slå husk mig fra" Then Response.Cookies("login").Expires = date() - 1 End If
På login formen skulle du måske lige udvide denne:
eagleeye: jeg har prøvet med at fjerne krydset i remember og det ser umiddelbart ud til at virke - næste gang du kommer til siden vel og mærke. Man skal altså logge ind med krydset disabled for at den sletter cookien.
så langt så godt. så går jeg ud fra at jeg skal bruge det her:
<%
if Request.Servervariables("REQUEST_METHOD") = "POST" then if Request.Form("gem") <> "" then 'Gem cookien Response.Cookies("login")("brugernavn") = Request.Form("username") 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 end if %>
men hvor skal jeg sætte det ind henne ?
også til sidst men ikke mindst så skal jeg sætte det her ind på mit login script: men er det lige emeget hvor jeg smider det ind henne ?
<% if lcase(Request.Cookies("login")("gem")) = "ja" then username = Request.Cookies("login")("brugernavn") password = Request.Cookies("login")("brugernavn") else usernavn = "" password = "Password" end if %>
SÅ HELP!!!!!!!! ;-)
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.