经典的ASP和SQL Server Express 2005
本文关键字:Server Express 2005 SQL ASP 经典 | 更新日期: 2023-09-27 17:52:54
下面是我简单的asp代码,我用它来插入一些数据到SQL Server数据库。它给出了以下错误。有人可以看一下,让我知道这个代码的错误吗?
<html>
<head>
<title>Address Book Insertion</title>
</head>
<body>
<%
set connection=Server.CreateObject("ADODB.Connection")
connection.Open "Provider=SQLOLEDB;Server=charithj-pc;Integrated Security=SSPI;Initial Catalog=AddressDB;"
cmd = "INSERT INTO AddressBook (FirstName, Surname, Address) VALUES ('"
cmd = cmd & Request("FirstName") & "','"
cmd = cmd & Request("Surname") & "','"
cmd = cmd & Request("Address") & "')"
Response.Write(cmd)
on error resume next
connection.Execute cmd
if err <> 0 then
Response.Write("Insertion failed")
else
Response.Write("Insertion successful")
end if
connection.close
%>
</body>
</html>
网站无法显示
页面HTTP 500
最可能的原因:
•网站正在维护中。
•网站有一个编程错误。
打开浏览器,我假设它是Internet explorer并禁用"显示友好HTTP错误"。这可以帮助您看到真正的错误消息。
顺便说一句。您的代码允许SQL注入。使用SQL参数或替换一些字符,如单引号等
关于关闭友好的HTTP错误,删除错误简历和照顾SQL注入的观点都是正确的,你应该在我们猜测什么是错的之前做它们,但有一件事确实在你的VB脚本代码中脱颖而出(这是在<% %>
中嵌入ASP类的语言)。
这是你对Response.Write()的使用。
允许代码将输出返回给浏览器。当你有这样一行:
Response.Write(cmd)
您正在将cmd对象的字符串表示形式发送回浏览器。这很容易破坏服务器端页面的创建。
让你更好地工作的两条一般性建议:
对于除了最琐碎的页面之外的所有页面,通常最好将代码从ASP页面中删除,并将其放入ASP页面随后调用的独立库中。
在测试时,您的VB脚本代码不需要运行出ASP页面,您可以将脚本复制到文本文件中。将该文件重命名为.vbs,您应该可以通过双击它来运行VB脚本。
这是我得到的错误。微软SQL Server错误的OLE DB提供程序'80004005'无法打开数据库登录请求的"AddressDB"。登录失败。/AddressBook/Insert.asp,第9行-
尝试使用sql身份验证,查看连接字符串在这里:www.connectionstrings.com/或者更改您的安全设置:
http://msdn.microsoft.com/en-us/library/2xzyzb0f.aspx