|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
[asp]cookie应用实例
前几天就打算写个cookie的实例,已经做好了好几天了,就是没有写上来,不写上来感觉有点浪费,哈哈,现在贴上来,关于理论的东西,咱就不废话了,哈哈哈。直接进入实例:
[b]<form name="Login" action="loginaction.asp" method="post">
用户名称
<input name="User" type="text" id="User" size="23" maxlength="20">
用户密码:<input name="Password" type="password" id="Password" size="23" maxlength="20">
Cookie选项:<select name=CookieDate>
<option selected value=0>不保存</option>
<option value=1>保存一天</option>
<option value=2>保存一月</option>
<option value=3>保存一年</option>
</select>
<input type="submit" name="Submit" value=" 确认 "> <input name="reset" type="reset" id="reset" value=" 清除 ">
</form>
[/b]
这是登陆页面,数据库设计字段【szd_user】用户名【szd_password】密码【szd_lasttime】最后一次登陆时间【szd_cookie】cookie保存的时间【szd_jibie】用户的级别
登陆处理的页面
当验证成功的时候[code]
rs("szd_last_time")=now()
rs("szd_cookie")=cookiedate
rs.update
jibie=rs("szd_jibie")
call SaveCookie_5do8()
sub SaveCookie_5do8()
Response.Cookies("5do8")("User")=user
Response.Cookies("5do8")("Password") = PassWord
Response.Cookies("5do8")("CookieDate") = CookieDate
select case CookieDate
case 0
'not save
case 1
Response.Cookies("5do8").Expires=Date+1
case 2
Response.Cookies("5do8").Expires=Date+31
case 3
Response.Cookies("5do8").Expires=Date+365
end select
end sub
[/code]
这是关键,保存了cookie。
保存结束。 验证用户是不是登陆的时候,可以专门写一个function,容易调用嘛。
[code]
'**************************************************
'函数名:CheckUserLogined
'作 用:检查用户是否登录
'参 数:无
'返回值:True ----已经登录
' False ---没有登录
'**************************************************
function CheckUserLogined()
dim Logined,Password,rsLogin,sqlLogin
Logined=True
User=Request.Cookies("5do8")("User")
Password=Request.Cookies("5do8")("Password")
'上面是获取cookie
if User="" then
Logined=False
end if
if Password="" then
Logined=False
end if
if User="" then
Logined=False
jibie=9999
end if
if Logined=True then
user=replace(trim(user),"'","")
password=replace(trim(password),"'","")
set rsLogin=server.createobject("adodb.recordset")
sqlLogin="select * from admin where szd_user ='" & user & "' and szd_password ='" & password &"'"
rsLogin.open sqlLogin,Conn,1,1
if rsLogin.bof and rsLogin.eof then
Logined=False
else
if password<>rsLogin("szd_password") then
Logined=False
end if
User=rsLogin("szd_user")
if rsLogin("szd_cookie")=1 then
ValidDays=rsLogin("szd_session")
elseif rsLogin("szd_cookie")=2 then
ValidDays=rsLogin("szd_session")*30
elseif rsLogin("szd_cookie")=3 then
ValidDays=rsLogin("szd_session")*365
end if
ValidDays=ValidDays-DateDiff("D",
rsLogin("szd_last_time"),now())
end if
rsLogin.close
set rsLogin=nothing
end if
CheckUserLogined=Logined
end function
'**************************************************
'函数名:jibie
'作 用:检查用户级别
'参 数:LevelNum-----要检查的级别值
'返回值:级别名称
'**************************************************
function jibieok(jibie)
select case jibie
case 9999
jibie="游客"
case 1
jibie="普通村名"
case 2
jibie="勤劳村民"
case 3
jibie="高级村民"
case 4
jibie="老农"
end select
end function
[/code]
这里有必要搞一个sub显示用户登录表单。
[html]
'==================================================
'过程名:ShowUserLogin
'作 用:显示用户登录表单
'参 数:无
'==================================================
sub ShowUserLogin()
dim strLogin
if CheckUserLogined()=False then
strLogin="<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>"
strLogin=strLogin & "<form action='loginaction.asp' method='post' name='UserLogin' onSubmit='return CheckForm();'>"
strLogin=strLogin & "<tr><td height='25' align='right'>用户名:<td height='25'><input name='User' type='text' id='User' size='16' maxlength='20'></td>"
strLogin=strLogin & "<td height='25' align='right'>密码:</td><td height='25'><input name='Password' type='password' id='Password' size='16' maxlength='20'></td>"
strLogin=strLogin & "<td height='25' align='right'>cookie保存:</td><td height='25'><select name=CookieDate><option selected value=0>不 保 存</option><option value=1>保 存 一 天</option>"
strLogin=strLogin & "<option value=2>保 存 一 月</option><option value=3>保 存 一 年</option></select></td>"
strLogin=strLogin & "<td height='30' colspan='2'><input name='Login' type='submit' id='Login' value=' 登 录 '> <input name='Reset' type='reset' id='Reset' value=' 清 除 '>"
strLogin=strLogin & "<hr size='1' color='#Cccccc'><a href='User_Reg.asp' target='_blank'>新用户注册</a> <font color='#666666'>|</font> <a href='User_GetPassword.asp'>忘记密码?</a></td>"
strLogin=strLogin & "</tr></form></table>"
response.write strLogin
%>
<script language=javascript>
function CheckForm()
{
if(document.UserLogin.User.value=="")
{
alert("请输入用户名!");
document.UserLogin.User.focus();
return false;
}
if(document.UserLogin.Password.value == "")
{
alert("请输入密码!");
document.UserLogin.Password.focus();
return false;
}
}
</script>
<%
Else
response.write " <font color='#666666'>欢迎</font><font color=#000080>" &Request.Cookies("5do8")("User")& "</b></font><font color='#666666'>,</font>"
end if
if ValidDays>0 then
response.write " <b><font color=blue>" & ValidDays & "<a href='logout.asp'>退出</a></font>"
if ValidDays<=10 then
end if
else response.write " <b><font color=red>" & ValidDays & "<a href='logout.asp'>退出</a></font>"
end if
end sub
%>[/html]
哈哈哈,现在好了,只需要在你的cookie页面上加上
[code]
<!--#include file="function.asp"-->
<% call ShowUserLogin() %>
[/code]
就可以了。seesion比cookie还容易,详细见我的xhtml+asp+access教程。
在这里测试:[url=http://www.5do8.com/cookie]http://www.5do8.com/cookie/
打包下载这个讲解:http://www.5do8.com/cookie/szd.rar
退出的时候只要清空cookie就好了:
[code]
<%
<%
Response.Cookies("5do8")("User")=""
Response.Cookies("5do8")("Password")=""
Response.Cookies("5do8")("5do8")=""
dim ComeUrl
ComeUrl=trim(request("ComeUrl"))
if ComeUrl="" then
ComeUrl=Request.ServerVariables("HTTP_REFERER")
if ComeUrl="" then ComeUrl="index.asp" end if
end if
Response.Redirect ComeUrl
%>
[/code]
登陆用户名和密码都是00
-----------------------------------------
8.25号老农修正:保存cookie的时候,原先是session的值,放在数据库里面,取出,写入默认值,这样一般用不到,通用的为:
[code] sub SaveCookie_tvillage()
Response.Cookies("tvillage")("User")=user
Response.Cookies("tvillage")("Password") = PassWord
Response.Cookies("tvillage")("jibie") = jibie
Response.Cookies("tvillage")("CookieDate") = CookieDate
select case CookieDate
case 0
'not save
case 1
Response.Cookies("tvillage").Expires=Date+1
case 2
Response.Cookies("tvillage").Expires=Date+31
case 3
Response.Cookies("tvillage").Expires=Date+365
end select
end sub
[/code] |
不错,支持原创。 |
真不错,继续努力,这种无私精神值得我们学习~~~~`楼主好样的~~~~ |
if rsLogin("szd_cookie")=1 then
ValidDays=rsLogin("szd_session")
elseif rsLogin("szd_cookie")=2 then
ValidDays=rsLogin("szd_session")*30
elseif rsLogin("szd_cookie")=3 then
ValidDays=rsLogin("szd_session")*365
end if
问楼主:这里的szd_session字段你在文中没有提及哦。具体有什么作用?获得的validDays变量有什么用途?它的值是什么? |
5do8
不错!
很棒
我转载一下 嘿嘿 |
看不懂啊 郁闷 |
建议修改一下,比如这样
Cookie选项:<select name="CookieDate">
<option selected value=0>不保存</option>
<option value="1">保存一天</option>
<option value="30">保存一月</option>
<option value="365">保存一年</option>
</select>
Response.Cookies("5do8").Expires = Date + Request("CookieDate") |
还可以 |
|