Avatar billede bms Nybegynder
05. april 2001 - 15:25 Der er 17 kommentarer og
1 løsning

cookie til login

Davs - jeg har lavet et lille admin-modul, og selvom det egentligt kun er mig der skal bruge det har jeg lavet et login (Username, Password)... Og det er sådan set godt nok!

Men nu er jeg sq blevet træt af at skulle indtaste det hver gang (håbløs - I know :-) så derfor - kan man ikke lave en cookie-ting og evt. en tjek-boks (husk mine informationer)...

Menøh... hvordan?! Husk venligst at login er lavet, så det er \"bare\" cookie-delen jeg er interesseret i. Og helst på den måde at man ikke automatisk logges ind (sendes videre til loggedin.asp) - men blot at felterne ér udfyldt med ens info (username, password) på login siden - så man kun skal trykke på login-knappen!

Nogen der ved hvordan? Har sådan en kode liggende?!
Avatar billede dudal Nybegynder
05. april 2001 - 15:31 #1
Når du logger ind:

Response.Cookies(\"Username\").Expires = \"01-01-2002\"
Response.Cookies(\"Username\") = Request.Form(\"Username\")
Response.Cookies(\"Password\").Expires = \"01-01-2002\"
Response.Cookies(\"Password\") = Request.Form(\"Password\")

<form action=\"side2.asp\" method=\"post\">

Navn: <input type=\"text\" name=\"Username\" value=\"<%=Request.Cookies(\"Username\") %>\">
<br><br>
Pass: <input type=\"Password\" name=\"Password\" value=\"<%=Request.Cookies(\"Password\") %>\">

<br><br>

<input type=\"submit\" value=\"Send\">
Avatar billede prof2 Nybegynder
05. april 2001 - 15:32 #2
Lave cookies:
response.cookies(\"username\") = request.form(\"username\")
response.cookies(\"password\") = request.form(\"password\")


Hente cookies:
username = request.cookies(\"username\")
password = request.cookies(\"password\")


Så kan du loggen ind med variablerne username og password!
Jeg kan ikke huske om det er:
request.cookies
og
response.cookies

eller:
request.cookie
og
response.cookie
Avatar billede prof2 Nybegynder
05. april 2001 - 15:33 #3
PIS! Jeg skal en eller anden dag lære at skrive hurtigere. Der er altid nogen der svarer mens jeg skriver... ÆV!
Avatar billede bms Nybegynder
05. april 2001 - 15:33 #4
dudal >> I like it - men giver det muligheden for at afkrydse \"Husk mine info\"... Det kunne være fedt synes jeg!
Avatar billede dudal Nybegynder
05. april 2001 - 15:35 #5


<form action=\"side2.asp\" method=\"post\">

Navn: <input type=\"text\" name=\"Username\" value=\"<%=Request.Cookies(\"Username\") %>\">
<br><br>
Pass: <input type=\"Password\" name=\"Password\" value=\"<%=Request.Cookies(\"Password\") %>\">

<br><br>

<input type=\"checkbox\" name=\"husk\" value=\"jada\">

<input type=\"submit\" value=\"Send\">

</form>

På loginsiden:

If Request.Form(\"husk\") = \"jada\" Then
Response.Cookies(\"Username\").Expires = \"01-01-2002\"
Response.Cookies(\"Username\") = Request.Form(\"Username\")
Response.Cookies(\"Password\").Expires = \"01-01-2002\"
Response.Cookies(\"Password\") = Request.Form(\"Password\")
End IF



----- Nu gør det. :-)
Avatar billede bms Nybegynder
05. april 2001 - 15:51 #6
hmm... den husker vist ikke rigtigt noget, el. har jeg rodet noget op?!
Avatar billede bms Nybegynder
05. april 2001 - 15:54 #7
Får en mærkelig fejlmeddelelse:

Response object error \'ASP 0156 : 80004005\'

Header Error

/test/check.asp, line 10

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede dudal Nybegynder
05. april 2001 - 15:54 #8
Altså, på det sted i din kode hvor du behandler de informationer (username og password) fra formularen skal dette være:

If Request.Form(\"husk\") = \"jada\" Then
Response.Cookies(\"Username\").Expires = \"01-01-2002\"
Response.Cookies(\"Username\") = Request.Form(\"Username\")
Response.Cookies(\"Password\").Expires = \"01-01-2002\"
Response.Cookies(\"Password\") = Request.Form(\"Password\")
End IF

Men det forudsætter at dine formfelter hedder Username og Password.

Hvis det ikke virker, kan du så ikke prøve med lidt mere kode?
Avatar billede dudal Nybegynder
05. april 2001 - 15:56 #9
Ahhh.

If Request.Form(\"husk\") = \"jada\" Then
Response.Cookies(\"Username\").Expires = \"01-01-2002\"
Response.Cookies(\"Username\") = Request.Form(\"Username\")
Response.Cookies(\"Password\").Expires = \"01-01-2002\"
Response.Cookies(\"Password\") = Request.Form(\"Password\")
End IF

Skal stå øverst i din kode, inden der er udkrevet noget til browseren.
Avatar billede dudal Nybegynder
05. april 2001 - 15:56 #10
Eller.

Skriv response.buffer = true i toppen af din side, så er det ligemeget hvor det står
Avatar billede bms Nybegynder
05. april 2001 - 15:59 #11
Jovist - kode - værsgod! (og jeg fordobler i øvrigt gladeligt pointene - hvis det kan komme til at virke!)

Flg. er den kode der indtil nu bruges til at behandle formularen (og de hedder godt nok Username og Password):


<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Username = request.form(\"Username\")
for i = 0 to ubound(arrResWords)
if instr(Username,arrResWords(i)) then
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else
Username = Username
end if
next
%>
<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")
Password = request.form(\"Password\")
for i = 0 to ubound(arrResWords)
if instr(Password,arrResWords(i)) then
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else
Password = Password
end if
next
%>
<%Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
if RS.EOF then
session(\"Login\") = false
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else

session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
session(\"Avatar\") = RS(\"Avatar\")

response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")
end if
%>
Avatar billede dudal Nybegynder
05. april 2001 - 16:02 #12
<%
listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
arrResWords = split(listeResWords,\",\")

Username = request.form(\"Username\")
Password = request.form(\"Password\")

If Request.Form(\"husk\") = \"jada\" Then
Response.Cookies(\"Username\").Expires = \"01-01-2002\"
Response.Cookies(\"Username\") = Request.Form(\"Username\")
Response.Cookies(\"Password\").Expires = \"01-01-2002\"
Response.Cookies(\"Password\") = Request.Form(\"Password\")
End IF


for i = 0 to ubound(arrResWords)
if instr(Username,arrResWords(i)) then
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else
Username = Username
end if
next


for i = 0 to ubound(arrResWords)
if instr(Password,arrResWords(i)) then
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else
Password = Password
end if
next

Set RS = server.CreateObject(\"ADODB.connection\")
RS.open ConnString
SQL = \"SELECT * FROM Users where Username = \'\" & Username & \"\' and Password = \'\" & Password & \"\'\"
Set RS = RS.Execute(SQL)
if RS.EOF then
session(\"Login\") = false
response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=default.asp\"\">\")
else

session(\"Login\") = true
session (\"Email\") = RS(\"Email\")
session(\"Username\") = RS(\"Username\")
session(\"Avatar\") = RS(\"Avatar\")

response.write (\"<meta http-equiv=\"\"refresh\"\" content=\"\"0;URL=admin.asp\"\">\")
end if
%>
Avatar billede bms Nybegynder
05. april 2001 - 16:08 #13
No dice - når jeg afkrydser \"husk\" (som jeg har valgt at kalde \"Remember\" og value =\"Yes\") så vil den ikke logge ind - men får altså flg. fejlmeddelelse:

Response object error \'ASP 0156 : 80004005\'
Header Error
/test/check.asp, line 17

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede dudal Nybegynder
05. april 2001 - 16:12 #14
Prøv at skrive
Response.Buffer=TRUE

Lige over denne linie:

listeResWords = (\"%,*,?,&,¤,½,@,(,),{,},[,]$,£,§,1,2,3,4,5,6,7,8,9,0\")
Avatar billede bms Nybegynder
05. april 2001 - 16:15 #15
der sker det samme!
Avatar billede bms Nybegynder
05. april 2001 - 17:09 #16
jeg har surfet lidt rundt og fundet en forklaring på den fejlmeddelelse - og har faktisk fået det til at virke!

Men pr. default står min oplysninger i tekst-felterne nu. Og de skulle jo kun blive stående hvis \"husk mine informationer\" var afkrydset - ellers ikke.

Kan du greje den?
Avatar billede bms Nybegynder
05. april 2001 - 17:12 #17
Vupti - den fiksede jeg selv - nu mangler jeg bare at tjekboksen skal angive om man vil have dem gemt - er det noget i stil med:

<% if Request.Cookies(\"Remember\")=True Then Response.write \"checked\" End If%>>
Avatar billede bms Nybegynder
05. april 2001 - 17:41 #18
Hmm... Måske
<% if Request.Cookies(\"Remember\")=True Then Response.write \"checked\" End If%>> fortjener sit eget spørgsmål - og du fortjener dine point!


Tak for hjælpen
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