Asp classic 如何显示折扣金额?
请看两个连接字符串,一个用于访问数据库,另一个用于SQL Server数据库 Access数据库的连接工作完美无瑕,直到我们最近更换了托管公司并迁移到godaddy.com 他们向我们提供了到SQL Server数据库的连接字符串 此后,我们无法成功连接到SQL Server。我们一直得到500(内部错误) 我试着联系他们,他们不停地告诉我们没有其他人有同样的问题,我觉得很难相信 你能看看我有没有遗漏什么吗 非常感谢大家Asp classic 如何显示折扣金额?,asp-classic,Asp Classic,请看两个连接字符串,一个用于访问数据库,另一个用于SQL Server数据库 Access数据库的连接工作完美无瑕,直到我们最近更换了托管公司并迁移到godaddy.com 他们向我们提供了到SQL Server数据库的连接字符串 此后,我们无法成功连接到SQL Server。我们一直得到500(内部错误) 我试着联系他们,他们不停地告诉我们没有其他人有同样的问题,我觉得很难相信 你能看看我有没有遗漏什么吗 非常感谢大家 ''# Access DB Connection String <
''# Access DB Connection String
<%
Dim objConn, objRS
''# Set objConn = Server.CreateObject("ADODB.Connection")
''# objConn.Open "DSN=ship"
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"DATA SOURCE=" & server.mappath("admin\scart.mdb")
Set objRS = objConn.Execute("SELECT * FROM logins WHERE Username = '" & Request.Form("txtUsername") & "' AND password = '" & Request.Form("TxtPassword") & "' ")
If Not objRS.EOF Then
If objRS(1) = Request.Form("txtPassword") Then
Session.Contents("access_level") = objRS(2)
Session.Contents("ID") = objRS(3) ''#ID column
Session("username") = objRS("USERNAME")
Session("password") = objRS("password")
Response.Redirect "setup.asp"
Else
Response.Write "Sorry, but the password that you entered is incorrect. <a href='setup.asp'>Try again</a>"
End If
Else
Response.Write "Sorry, but the username that you entered does not exist. <a href='setup.asp'>Try again</a>"
End If
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<%
''# SQL Server connection string
Dim objConn, objRS
Dim qry, connectstr
Dim db_name, db_username, db_userpassword
Dim db_server
db_server = "MyServer name"
db_name = "nyDBName"
db_username = "MyUsername"
db_userpassword = "MyPassword"
connectstr = "Driver={SQL Server};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_username & ";PWD=" & db_userpassword
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open connectstr
SQL = "SELECT * FROM logins WHERE Username = '" & Request.Form("txtUsername") & "' AND password = '" & Request.Form("TxtPassword") & "' "
response.write sql
response.end
Set objRS = objConn.Execute(SQL)
If Not objRS.EOF Then
If objRS(1) = Request.Form("txtPassword") Then
Session.Contents("access_level") = objRS(2)
Session.Contents("ID") = objRS(3) ''# ID column
Session("username") = objRS("USERNAME")
Session("password") = objRS("password")
Response.Redirect "setup.asp"
Else
Response.Write "Sorry, but the password that you entered is incorrect. <a href='setup.asp'>Try again</a>"
End If
Else
Response.Write "Sorry, but the username that you entered does not exist. <a href='setup.asp'>Try again</a>"
End If
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
“”#访问数据库连接字符串
根据您的问题,您不太清楚是要连接到access/mdb还是sqlserver
但无论如何,下面两篇文章中的一篇将介绍您
但是,由于在您与我们共享的代码片段中,userinput(Request.Form(“txtexername”)直接放入SQL语句中,而不进行任何清理,因此您的数据库可能会经历大量SQL注入,这只是几天的事
从这个角度来看,我可以告诉你,你是幸运的,你无法连接
首先也是最重要的,清理你的用户输入。清理是一个大问题。
但是试着把这些作为一个即时的解决方案
dim txtUsername,txtPassword
txtUsername = Request.Form("txtUsername")
txtPassword = Request.Form("txtPassword")
'sanitize
txtPassword = replace(txtPassword,"'","''",1,-1,1)
txtUsername = replace(txtUsername,"'","''",1,-1,1)
Set objRS = objConn.Execute("SELECT * FROM logins WHERE Username = '" & txtUsername & "' AND password = '" & TxtPassword & "' ")
在按照上述方式修复代码之后,然后,也只有在那时,您才应该担心修复原始连接问题。因此,关于SQL注入,请参阅XSS(跨站点脚本)
确保你们公司的每一个编码员都读过这本书,并且明白这两件事是什么。你们会很高兴你们做到了。否则你们迟早会陷入痛苦的境地
祝你好运…告诉我们错误发生在哪一行。你为什么要移动到GoDaddy?你的路径与记录的路径不匹配;而且你有一个巨大的注入问题,没有逃逸提交的数据/使用参数化的adodb.commandRedFilter,我不能说出这一行。这是我在帖子中指出的。如果可以,我会修复它告诉发生错误的线路。此外,500个内部错误不显示错误线路。我同意。这不是我的决定。我实际上试图阻止它。我还没有对他们的服务进行热身,我个人认为这很糟糕。Alex,你显示了指向Access数据库连接的链接。如上所述,我们正在从Access转移到SQL Server。事实上,我们想继续使用Access,但他们告诉我们,为了访问,我们必须转到他们的“遗留”服务器。是的,但您的示例中与访问相关的内容不正确,可能会失败。如果SQL Server有问题,为什么会出现这种情况?-启用详细错误