我正在尝试比较从login_form.asp存储的输入(用户名和密码),该输入调用我的login.asp验证页面。我有代码工作,除了正则表达式条件。在继续之前,我将if语句添加到比较条件时页面崩溃。我只想在连接尝试之前允许a-z0-9输入。如果我注释掉if条件,表单验证工作,但不是正则表达式。这是ASP Classic。感谢您的任何见解或帮助。
以下是我正在使用的代码:
dim userName, password, query
dim conn, rs
Dim reg
Set reg = new RegExp
reg.Pattern = "[a-z0-9] + @[a-z0-9\.] +"
userName = Request.Form("userName")
password = Request.Form("password")
response.write userName & "<P>"
if reg.Test("userName") then
response.write "regex userName = true"
endif
if reg.Test("password") then
response.write "regex password = true"
endif
set conn = server.createObject("ADODB.Connection")
set rs = server.createObject("ADODB.Recordset")
query = "select UserName from users where userName='" & userName & "'
and userPass='" & password & "'"
response.write query & "<P>"
答案 0 :(得分:0)
试
regext.test(用户名)
而不是
regex.test(&#34;用户名&#34)
第二个运行字符串文字&#34;用户名&#34;而不是变量,运行到regex.test()
你的正则表达式看起来也很奇怪。
regexlib.com有可搜索的正则表达式选择..
最后,您可能会重新考虑进行数据库查询的方法。如何做到这一点是开放的SQL注入攻击。使用ado的Parameters对象。