注册 登录
编程论坛 ASP技术论坛

(问题已解决)Access转SQL后,用户无法登陆

towering 发布于 2008-10-22 09:19, 1767 次点击
我把论坛从Access转为SQL后,后台还是正常的。
但是论坛用户不能登陆了。

下面的我的login.asp部分代码:
userpwd=md5(userpwd)
set rs=yw.execute("select top 1 userid,mark,grade,type,userinfo,topicnum,qian from [YW_User] where name='"&username&"' and pswd='"&userpwd&"' and not del")
if rs.eof then
login=false
mes=mes&"<li>你的用户名或者密码错误,或者该用户已经被删除。</li>"
else
login=true


下面是conn.asp的代码:
Dim Conn,Connstr
'定义数据库类别,1为SQL数据库,0为Access数据库
Const IsSqlDataBase=1
If IsSqlDataBase=1 Then
'sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName="bbs"
SqlPassword="123456"
SqlUsername="sa"
SqlLocalName="(local)"
ConnStr = "Provider=Sqloledb; User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
Else
......

不管是前台管理员还是一般论坛用户登陆是都是提示:“你的用户名或者密码错误,或者该用户已经被删除”。
就是红色的那行。
好像是根本在我的用户表[YW_User]中找不到数据。。。

我转换后对数据库的主键、默认值、标识都做了处理;
MD5加密也没有问题;
修改为 where Trim(name)='"&username&"' and Trim(pswd)='"&userpwd&"' 也不行;
......

请问这是什么原因?
谢谢!!

[[it] 本帖最后由 towering 于 2008-10-23 15:33 编辑 [/it]]
12 回复
#2
hmhz2008-10-22 09:28
数据库访问用户的权限选择 db_owner,如果没有存储过程就选择 db_datareader和db_datawriter这两个权限
#3
towering2008-10-22 09:55
不用选择数据库访问用户的权限了吧?
我用是sa帐户呀!

我没有存储过程
给sa添加版主说的那个个权限时提示错误:
只有本站会员才能查看附件,请 登录
#4
hmhz2008-10-22 10:51
sa是数据库最高权限,劝你最好不要用这个用户,新建立个用户访问数据库
#5
gupiao1752008-10-22 11:10
个人建议使用排除法!
第一,考虑你已经转变了数据库类型,必须考虑连接上是否有问题,试着用你现在的代码连接一下SQL数据库,看是否一切都正常!
第二,考虑客户端那里的输入在服务器这里是否已经获得所有值,最好能在进行SQL查询以前输出显示来看看!
第三,是否使用了on error resume next,有的话就删除该句!进一步找出错误!
第四,如果你有使用MD5,考虑是否正确使用了!可以先不使用MD5,拿一个非MD5的用户名进行测试!
#6
towering2008-10-22 11:19
添加了一个用户,重新设置权限还是不行。。。
#7
hmhz2008-10-22 11:56
where [name]='"&username&"' and pswd='"&userpwd&"'
#8
towering2008-10-22 13:44
where [name]='"&username&"' and pswd='"&userpwd&"'也不行

我刚才试了一下,
注册新用户是可以的,
注册完成后可以在数据库中找到注册的信息,
但是注册完成后自动登陆时还是说“你的用户名或者密码错误,或者该用户已经被删除”

这说明gupiao175的前三条测试完了还是不行。。。
#9
hmhz2008-10-22 13:49
那就是你的程序存在问题
#10
towering2008-10-22 13:50
程序应该没有任何问题!

因我用Access时没有一点问题,

我是因为数据量大了才转的SQL。

谢谢!!
#11
gupiao1752008-10-22 15:42
字段没搞错,取值也正确,程序又没有问题,没理由还不行啊!
#12
towering2008-10-23 09:15
是不是在登陆的时候AC语句和SQL语句写的不一样呀?

不过我看我的那个也符合SQL语句呀!
#13
towering2008-10-23 15:31
终于搞定!!!

把select top 1 userid,mark,grade,type,userinfo,topicnum,qian from [YW_User] where name='"&username&"' and pswd='"&userpwd&"' and not del
改为
select top 1 userid,mark,grade,type,userinfo,topicnum,qian from [YW_User] where name='"&username&"' and pswd='"&userpwd&"' and del=0
就可以了,原来在SQL中是不能用not的,呵呵!!!

谢谢两位的热心!!!

[[it] 本帖最后由 towering 于 2008-10-23 15:32 编辑 [/it]]
1