0

首先,我要做的是将访问数据库链接到成功的站点。现在,我正在尝试在注册页面上显示一条特定消息,说明输入的电子邮件已经存在,如果确实存在,则代替通常在电子邮件存在时出现的 odbc 错误消息,但是我收到错误消息以显示它是否存在。我到目前为止所做的代码如下所示,我们将不胜感激了解可能出现的问题。

sql="INSERT INTO Customers (Customerfirstname, Customerlastname, Email, Password, Address,        Phoneno)     VALUES (' "&fname&"',' "&lname&"','"&email&"',' "&password&"',' "&caddress&"',' "&phno&"')"
on error resume next
  Con.Execute sql  
    if err.number <> 0 then
     response.write("E-mail already exist")         
    else  
  ' append the query string to the redirect URL
      If (Request.QueryString <> "") Then
      If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
        MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
      Else
        MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
      End If
    End If
 end if
Response.Redirect(MM_editRedirectUrl)
con.close: set conn = nothing
4

2 回答 2

1

在尝试将任何内容插入数据库之前,您需要执行一些验证。

首先,获取他们通过您的表单提交的电子邮件地址,并在对其进行清理以进行注入后(如此处所述)然后运行 ​​SELECT 查询以查看该地址是否存在。

如果确实存在,请将它们重定向到一个不错的错误页面,如果它不存在并且一旦你清理了用户提交的其余部分,那么应该插入到你的数据库中。

此外,使用“if err.number <> 0 then response.write("E-mail already exists")”是不好的。如果电子邮件地址不存在但他们可能尝试在您的数据库中插入太长的字符串怎么办?或者如果数据库由于某种原因不可用怎么办?你会给他们错误的错误。

于 2013-08-20T10:57:55.427 回答
0

检查实际错误是什么:

if err.number <> 0 then
     response.write(err.description)         
else
..
于 2013-08-20T11:02:38.777 回答