Session 变量的问题

sttony 2005-12-18 01:49:01
第一次写 ASP程序,遇到一个很奇怪的问题.

//JavaScript 简单的用户验证程序.
if(Request.ServerVariables("REQUEST_METHOD")=="POST")
{
var conn=Server.CreateObject("ADODB.Connection");
conn.open("DBQ="+Server.mappath("Dkp.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)}");
var username=Request.Form("uid");
var userpwd=Request.Form("psw");
// 查询该用户的权限
var strsql="select priority from tblMember where name=\'"+username+"\' and Memberpsw=\'"+userpwd+ "\'";
var sqlresult=conn.Execute(strsql);
if( sqlresult.bof==true &&sqlresult.eof==true )
{
// 帐号或 口令不对 返回登陆页面
Response.Redirect("default.asp?message=帐号和口令不对,请重新输入");
}
//设置 当前用户的 uid和 权限
////////////////////////////////////////////////
// 下面这两个Session变量遇到了奇怪的问题
//Session("uname")= username;
Session("upriority")=sqlresult("priority");
}

原意是想 在Session中存储当前用户的名字和权限代码.名字是一个字符串, 权限代码是一个整数.但是
Session("uname")= username; 这行代码直接导致这个页面发生500内部服务器错, 后面的代码没有问题在本页面内可以正确使用Session("upriority")

但是在另外一个页面内下面的代码
var pid= Session("upriority");
if(pid==1)
{
uclass="管理员";
}
if(pid==7)
{
uclass=" 普通成员";
}
Response.Write("hello !"+Session("uname")+"你的权限是"+pid);
存储Session("uname")时居然可以正确的得到用户名(上一个页面中的//Session("uname")= username;已经注释掉了). 而var pid= Session("upriority"); 缺导致一个错误
ADO.Field 错误 8004axxxx 对象不存在

我想后一个错误是不是因为语句Session("upriority")=sqlresult("priority"); 存储下来的只是RecordSet对象的一个引用,结果换了一个页面之后该引用成为一个空引用了.

请各位ASP前辈指导.
...全文
157 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sttony 2006-01-25
  • 打赏
  • 举报
回复
谢谢,
ASP真麻烦,还是用ASP.net
  • 打赏
  • 举报
回复
Session("upriority")=sqlresult("priority").value;

try this

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧