读书人

非常奇怪的有关问题.从来没遇到过.SES

发布时间: 2011-12-29 22:09:38 作者: rapoo

非常奇怪的问题.从来没遇到过...SESSION错乱
登陆以后保存Session[ "Userid "] = sdr[ "Userid "].ToString().Trim();

每个会员发布的信息,都用这个Session[ "Userid "]来标识

其中Session[ "Userid "]为用户的ID,数字型


然后就是发布信息的时候:

public static string Userid= " ";

在ISPOSTBACK里
if(Session[ "Userid "] == null || Session[ "Userid "].ToString().Trim() == String.Empty)
{
Response.Redirect( "Login.aspx ");
Response.End();
}

Userid = Session[ "Userid "].ToString().Trim();

然后就是提交向数据库中插入数据


结果用A和B两个不同的帐号登陆发布信息

会出现下面的错误

A发布的信息会跑到B的信息列表里去
B发布的信息也会跑到A的信息列表里去

在读取会员发布信息的时候,也是用Session[ "Userid "]来对应数据库中的会员标识来的...

怎么会这样呢?

[解决办法]
具体在insert语句里面调试下看看是否A,B取到的
Session[ "Userid "] = sdr[ "Userid "].ToString().Trim();这个值是不是有问题!
[解决办法]
public static string Userid= " ";
两个同时登录时会出现问题

[解决办法]
中断看看是你Userid = Session[ "Userid "].ToString().Trim();这句就取到错误的数据还是什么。

这个一般不会出现错乱,你打开你的数据库看看数据库里的数据有没有问题,如果没问题就应该是读取数据的时候写错了SQL语句。


估计你是在显示发布信息的时候读取数据库的SQL语句有问题
[解决办法]
A发布的信息会跑到B的信息列表里去
B发布的信息也会跑到A的信息列表里去
-----------------------------------------什么意思?
你的存储过程都是一样插入一个表而已啊。
insert into UserProList(Uid,Classid,ProBid,ProSid,ProBH,ProName,ProPP,ProXH,ProJG,ProDW,ProQDL,ProPic,ProMsg,ProTime)
values(@Userid,@Classid,@ProBid,@ProSid,@ProBH,@ProName,@ProPP,@ProXH,@ProJG,@ProDW,@ProQDL,@FileName,@ProMsg,@ProTime)
-----------------------这样字有什么错乱呢?

一般都不会什么错乱的呢!
[解决办法]
你先插入1条新的记录,然后直接打开的你数据库看看插入的Uid对不对
[解决办法]
你那个USERID不定义静态也较好点。。
[解决办法]
public string Userid= " ";
不要定义为静态看看
[解决办法]
你在登陆页面Session.Clear();
[解决办法]
应该是推出的时候没有清空session!
[解决办法]
你插入的都是空的Session[ "Userid "]= " ";静态的问题
[解决办法]
跟踪一下session,一般不会出理这种问题的
可能是你自己代码逻辑问题
[解决办法]
不要定义成STATIC

读书人网 >asp.net

热点推荐