宁波到莫斯科:asp问题,请高手帮忙,谢谢!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 12:19:43
我做了一个会员登录系统(会员分为三种类型:管理员,高级会员,普通会员),在不同类型的会员登录的时跳到三种不同的页面并显示“欢迎***用户登录”。我已经实现了从登录的页面跳转到三种不同的页面。我想从登录页面提取不同用户登录的用户名,并传到他登录到的页面,然后根据这个用户名从数据库中查询该用户的信息,在页面中显示出来,该怎么做啊?
我用session做过传递这个用户名,可是当第一个用户登录以后可以显示该用户的信息,但到第二个用户登录的时候还是显示的还是第一个用户的信息,也就是说session值只记录了第一个用户的用户名而当第二个用户登录的时候没有改变。
我听朋友说可以用cookies做这个工作,可代码我不会写。
请高手帮忙写一下,并给出详细的注释,谢谢!

怎么清除一个不再需要的session变量但不使session失效?
在ASP3.0中:
Session.Contents.Remove "变量名"
可以清除一个变量。
在ASP2.0中:
set session("变量名")=NULL
可以清除变量。
在ASP3.0中,
Session.Contents.RemoveAll
可以清除所有的session变量和session.abandon不同,上面的方法都不会使目前的session过期或者无效。

ASP页面顶端的<%@ ENABLESESSIONSTATE=True %>是什么意思?
IIS使用一种叫做Session跟踪的技术,来保证各个Session变量在每个页面是可用的。当用户访问某个ASP页面时候,IIS会首先为这个页面准备好各个Session变量,这当然会带来性能上的影响。(使用Session变量的代价总是很高的!)
如果你有100个页面,而只有5个页面用到了Session,那么,为了整体的性能,你只需要在那5个页面设置:
<%@ ENABLESESSIONSTATE=True %>
而其他页面设置为:
<%@ ENABLESESSIONSTATE=False %>

这个问题我觉得很简单阿,程序也不复杂,就是登陆的时候,比如我登陆,ID是tjoy7d,然后赋个session给我:

session("userid") = "tjoy7d"

到我的列表页面后在取出这个session("userid")就可以了,很简单阿,这个怎么会只有一个session的值呢,你清一下你的IE缓存还有cookies再试一下。

如果还不行,那在程序中,登陆后的页面把session("userid") Response.Write一下,看看是什么值。

如果还有什么问题,欢迎来信。tjoy7d@126.com

不用session传!!!!!
你要是想根据不同的人登陆跳转到不同的欢迎界面可以在登陆页面用
Response.Redirect("你要跳到的页面.aspx?用户名="+textBox1.Text);
然后在那个欢迎页面取出你穿过来的值
string name=Request.QueryString["用户名"].ToString();
这样就取到了你从登录页面传过来的值!
你再用另外一个用户登录的时候穿过来的是另外一个值,你不用关闭浏览器和清除当前session就可以实现改变用户!

其实session可以重复赋值的,比如:表单名都为username,然后user=request("username")你第一个用户名abc登录成功时,session("a")=user
当第二个用户efg登录时也用session("a")=user
其实这时的session("a")="efg"
如果你达不到上面的效果,就在判断登录前用一句:session("a")=""或
session.abandon(没有用到其他session值时)
------------------------------
用cookies一样可以达到这样的效果,我现在的后台管理就是采用cookies的。
登录成功时:response.cookies("aaa")=user
然后:欢迎<%=request.cookies("aaa")%>用户登录
如果同样不能达到这效果,在登录前用一句:
<%
if request.cookies("aaa")<>"" then
response.cookies("aaa")=""
end if
%>

你的程序也许并没有问题,但你测试的方法不正确。Session是存在于浏览器进程的。你用第二个用户名登录时,必须先把所有的浏览器页面都关闭,这样才会释放Session。Cookies是保存在计算机上的。如果你的测试是在同一台机子上的话,更加达不到你要的效果。
建议你使用两种不同浏览器进行登录测试。比如用IE和Firefox。看看效果是不是不同的。

在登录第二个用户时,实现将session清空就可以。