Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Westi on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Session Cookies

Status
Not open for further replies.

Ragol1

Programmer
Oct 25, 2001
315
US

I use this code below to do member login but it doesnt save the username and password as a cookie.
Can someone please show me how to save the username and password as a cookie or have a check box asking them if they want it saved.

Thanks

<%@LANGUAGE=&quot;VBSCRIPT&quot;%>
<%

Dim Members__strUserID
Members__strUserID = &quot;xyz&quot;
if(Request.Form(&quot;UserID&quot;) <> &quot;&quot;) then Members__strUserID = Request.Form(&quot;UserID&quot;)

Dim Members__strPassword
Members__strPassword = &quot;123&quot;
if(Request.Form(&quot;Password&quot;) <> &quot;&quot;) then Members__strPassword = Request.Form(&quot;Password&quot;)

%> <%
set Members = Server.CreateObject(&quot;ADODB.Recordset&quot;)
Members.ActiveConnection = &quot;dsn=Members;&quot;
Members.Source = &quot;SELECT * FROM Members WHERE UserID = '&quot; + Replace(Members__strUserID, &quot;'&quot;, &quot;''&quot;) + &quot;' AND Password = '&quot; + Replace(Members__strPassword, &quot;'&quot;, &quot;''&quot;) + &quot;'&quot;
Members.CursorType = 0
Members.CursorLocation = 2
Members.LockType = 3
Members.Open
Members_numRows = 0
%>
<%
If Members__strUserID <> &quot;xyz&quot; then
If Not Members.EOF Then
Session(&quot;svUserID&quot;) = (Members.Fields.Item(&quot;UserID&quot;).Value)
Session(&quot;svPassword&quot;) = (Members.Fields.Item(&quot;Password&quot;).Value)
Session(&quot;svAccessGroup&quot;) = (Members.Fields.Item(&quot;AccessGroup&quot;).Value)
Session(&quot;ID&quot;) = (Members.Fields.Item(&quot;ID&quot;).Value)
strHomepage = Members.Fields.Item(&quot;HomePage&quot;).Value
Session(&quot;blnIsUserGood&quot;) = True
Response.Redirect(strHomePage)
Else
Response.Redirect &quot;login.asp&quot;
End If
End If
%>
 
Well the way you're doing it now, the username and password are stored in session variables, which are not persistent once the session ends.

Replace: Session(&quot;svUserID&quot;)
with: Response.Cookies(&quot;svUserID&quot;)

This will write the info to a cookie on the client's computer. You can read the value of this cookie using

Request.Cookies(&quot;svUserID&quot;)
 
OK I have added Response.Cookies(&quot;svUserID&quot;)
But it doesnt remember.

?
Thanks
 
Use Response.Cookies on this page, then bring up another page (for testing) that uses request.cookies and write it to the screen.

But of course all this will only work if the user has cookies enabled in their browser.
 
ok now im confused this is what I have
Response.Cookies(&quot;svUserID&quot;) = (Members.Fields.Item(&quot;UserID&quot;).Value)
Response.Cookies(&quot;svPassword&quot;) = (Members.Fields.Item(&quot;Password&quot;).Value)

All I want is for the two input boxes to be filled with the userid and password of the users when they come back to the site.

Because of the session and access groups they have to hit the submit button everytime, I just want to make it where it remembers who they are and the password.

it posts to the same page on one login and to another page on another login

 
Well, first off when you write your cookie, you are actually writing two cookies. You could do this:

After you validate their login, write the cookie:
Response.cookies(&quot;UserInfo&quot;)(&quot;UserName&quot;) = Members.Fields.Item(&quot;UserID&quot;).Value
Response.cookies(&quot;UserInfo&quot;)(&quot;Password&quot;) = Members.Fields.Item(&quot;Password&quot;).Value
Response.cookies(&quot;UserInfo&quot;).expires = Date() + 365
'expires in 1 year

On your login page, get the values:
strUserName = Request.cookies(&quot;UserInfo&quot;)(&quot;UserName&quot;)
strPassword = Request.cookies(&quot;UserInfo&quot;)(&quot;Password&quot;)

Then use these variables to populate your text boxes.

Is that what you are looking for?
 
Try something like this for your login page.


loginForm.asp
--------------------
<%
If (Request.Form(&quot;frm_UserName&quot;) <> &quot;&quot; AND Request.Form(&quot;frm_Password&quot;) <> &quot;&quot; ) then
Response.Cookies(&quot;User&quot;)(&quot;userName&quot;) = Request.Form(&quot;frm_UserName&quot;)
Response.Cookies(&quot;User&quot;)(&quot;password&quot;) = Request.Form(&quot;frm_Password&quot;)
Response.Cookies(&quot;User&quot;).Expires = DateAdd( &quot;d&quot;,365,Now() )

End If

Dim strUserName, strPassword

strUserName = Request.Cookies(&quot;User&quot;)(&quot;userName&quot;)
strPassword = Request.Cookies(&quot;User&quot;)(&quot;password&quot;)

%>

<form method=&quot;post&quot; action=&quot;loginForm.asp&quot;>
<input type=&quot;hidden&quot; name=&quot;frm_Submitted&quot; value=&quot;yes&quot;>
<input type=&quot;textbox&quot; name=&quot;frm_UserName&quot; value=&quot;<%=strUserName%>&quot; ...>
<input type=&quot;password&quot; name=&quot;frm_Password&quot; value=&quot;<%=strPassword%>&quot; ...>
<input type=&quot;submit&quot; value=&quot;Submit&quot;>
</form>

---------------------
 
thanks but on one login page it posts to it self do i need it to post somewhere else to validate?

 
Yes, you'll need top put the validation process in there somewhere.

<%
If (Request.Form(&quot;frm_UserName&quot;) <> &quot;&quot; AND Request.Form(&quot;frm_Password&quot;) <> &quot;&quot; ) then

[VALIDATION CODE HERE]

IF ([Valid Login] AND [User Wants Login Info Saved]) THEN

Response.Cookies(&quot;User&quot;)(&quot;userName&quot;) = Request.Form(&quot;frm_UserName&quot;)
Response.Cookies(&quot;User&quot;)(&quot;password&quot;) = Request.Form(&quot;frm_Password&quot;)
Response.Cookies(&quot;User&quot;).Expires = DateAdd( &quot;d&quot;,365,Now() )

END IF

End If

...
 
OK this is what I have

on the login page

I have
<%Dim strUserName, strPassword

strUserID = Request.Cookies(&quot;User&quot;)(&quot;UserID&quot;)
strPassword = Request.Cookies(&quot;User&quot;)(&quot;Password&quot;)
%>
<form name=&quot;form1&quot; method=&quot;post&quot; action=&quot;loginpost.asp&quot;>
<input type=&quot;hidden&quot; name=&quot;frm_Submitted&quot; value=&quot;yes&quot;>
<input type=&quot;textbox&quot; name=&quot;UserID&quot; value=&quot;<%=strUserID%>&quot; ...>
<input type=&quot;Password&quot; name=&quot;Password&quot; value=&quot;<%=strPassword%>&quot; ...>

<input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Submit&quot;>
<input type=&quot;submit&quot; name=&quot;Reset&quot; value=&quot;Reset&quot;>


Then on the loginpost page I have
-----------------------------------------------------
<%@LANGUAGE=&quot;VBSCRIPT&quot;%>

<%If (Request.Form(&quot;UserID&quot;) <> &quot;&quot; AND Request.Form(&quot;Password&quot;) <> &quot;&quot; ) then


<%

Dim Members__strUserID
Members__strUserID = &quot;xyz&quot;
if(Request.Form(&quot;UserID&quot;) <> &quot;&quot;) then Members__strUserID = Request.Form(&quot;UserID&quot;)

Dim Members__strPassword
Members__strPassword = &quot;123&quot;
if(Request.Form(&quot;Password&quot;) <> &quot;&quot;) then Members__strPassword = Request.Form(&quot;Password&quot;)

%> <%
set Members = Server.CreateObject(&quot;ADODB.Recordset&quot;)
Members.ActiveConnection = &quot;dsn=Members;&quot;
Members.Source = &quot;SELECT * FROM Members WHERE UserID = '&quot; + Replace(Members__strUserID, &quot;'&quot;, &quot;''&quot;) + &quot;' AND Password = '&quot; + Replace(Members__strPassword, &quot;'&quot;, &quot;''&quot;) + &quot;'&quot;
Members.CursorType = 0
Members.CursorLocation = 2
Members.LockType = 3
Members.Open
Members_numRows = 0
%>
<%
If Members__strUserID <> &quot;xyz&quot; then
If Not Members.EOF Then
Session(&quot;svUserID&quot;) = (Members.Fields.Item(&quot;UserID&quot;).Value)
Session(&quot;svPassword&quot;) = (Members.Fields.Item(&quot;Password&quot;).Value)
Session(&quot;svAccessGroup&quot;) = (Members.Fields.Item(&quot;AccessGroup&quot;).Value)
Session(&quot;ID&quot;) = (Members.Fields.Item(&quot;ID&quot;).Value)
strHomepage = Members.Fields.Item(&quot;HomePage&quot;).Value
Session(&quot;blnIsUserGood&quot;) = True
Response.Redirect(strHomePage)
Else
Response.Redirect &quot;login.asp&quot;
End If
End If
%>
<%
Response.Cookies(&quot;User&quot;)(&quot;UserID&quot;) = Request.Form(&quot;UserID&quot;)
Response.Cookies(&quot;User&quot;)(&quot;Password&quot;) = Request.Form(&quot;Password&quot;)
Response.Cookies(&quot;User&quot;).Expires = DateAdd( &quot;d&quot;,365,Now() )

END IF


%>

And it doesnt work?
What am I doing wrong...
 
I changed the Dim Username to UserID

No luck..
 
You are trying to write your cookie after you redirect away from this page. Maybe move your cookie writing code to the same place you are setting your sessions.
 
How about this?

==================
<% @LANGUAGE=&quot;VBSCRIPT&quot; %>

<%
Dim Members__strUserID: Members__strUserID = &quot;&quot;
IF(Request.Form(&quot;UserID&quot;) <> &quot;&quot;) THEN Members__strUserID = Request.Form(&quot;UserID&quot;)

Dim Members__strPassword: Members__strPassword = &quot;&quot;
IF(Request.Form(&quot;Password&quot;) <> &quot;&quot;) THEN Members__strPassword = Request.Form(&quot;Password&quot;)

IF (Members__strUserID <> &quot;&quot; AND Members__strPassword <> &quot;&quot; ) THEN


SET Members = Server.CreateObject(&quot;ADODB.Recordset&quot;)
Members.ActiveConnection = &quot;dsn=Members;&quot;
Members.Source = &quot;SELECT * FROM Members WHERE UserID = '&quot; + Replace(Members__strUserID, &quot;'&quot;, &quot;''&quot;) + &quot;' AND Password = '&quot; + Replace(Members__strPassword, &quot;'&quot;, &quot;''&quot;) + &quot;'&quot;
Members.CursorType = 0
Members.CursorLocation = 2
Members.LockType = 3
Members.Open

Members_numRows = 0

IF Not Members.EOF THEN

Session(&quot;svUserID&quot;) = (Members.Fields.Item(&quot;UserID&quot;).Value)
Session(&quot;svPassword&quot;) = (Members.Fields.Item(&quot;Password&quot;).Value)
Session(&quot;svAccessGroup&quot;) = (Members.Fields.Item(&quot;AccessGroup&quot;).Value)
Session(&quot;ID&quot;) = (Members.Fields.Item(&quot;ID&quot;).Value)
strHomepage = Members.Fields.Item(&quot;HomePage&quot;).Value
Session(&quot;blnIsUserGood&quot;) = True

Response.Cookies(&quot;User&quot;)(&quot;UserID&quot;) = Members__strUserID
Response.Cookies(&quot;User&quot;)(&quot;Password&quot;) = Members__strPassword
Response.Cookies(&quot;User&quot;).Expires = DateAdd( &quot;d&quot;,365,Now() )

Response.Redirect(strHomePage)

ELSE '...IF Not Members.EOF THEN...

Response.Redirect &quot;login.asp&quot;

END IF '...IF Not Members.EOF THEN...

END IF ' ...IF [Form Fields Are Not Empty] THEN...


%>
==================
 
Looks good... the only problem I see now is that you open 4 IF statements but only have two END IFs

Does the cookie get written now?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top