求教asp验证码判断语句的JS写法
我想在网站的注册页面上加个验证码功能,因为平时老受到注册机的骚扰,验证码文件有了,也在注册页面插入了输入框,现在想加个验证,但我的注册页面其它验证是用JS写的,我不会用J...
我想在网站的注册页面上加个验证码功能,因为平时老受到注册机的骚扰,验证码文件有了,也在注册页面插入了输入框,现在想加个验证,但我的注册页面其它验证是用JS写的,我不会用JS写判断语句,求教高人帮忙写一个,如果填错了验证码就会提示:您没有填写验证码 或 验证码填写错误,请返回 确定后可以返回上级页面继续填写。
我已将注册页面(Xiajin_register.asp)和验证码(Getcode.asp)上传到了空间,请下载查看,请帮忙在注册页面里加上判断语句(最好和其它的判断语句写在一起),谢谢。因为财富有限 悬赏80 谢谢各位好心人!
文件下载地址:http://115.47.156.176/yzm.rar 展开
我已将注册页面(Xiajin_register.asp)和验证码(Getcode.asp)上传到了空间,请下载查看,请帮忙在注册页面里加上判断语句(最好和其它的判断语句写在一起),谢谢。因为财富有限 悬赏80 谢谢各位好心人!
文件下载地址:http://115.47.156.176/yzm.rar 展开
4个回答
展开全部
在注册页面时可以做到的,但是不是最好的方法,因为JS的验证是可以屏蔽掉的。
注意,需要将以下JS代码放到验证码图片调用的后面,否则达不到效果
<script language="javascript">
//检查email的合法性
function checkemail(inputstr){
if(inputstr.indexOf('@') != -1 && inputstr.indexOf('.')!= -1)
return true;
else
return false;
}
var _vertyCode="<%=trim(Session("GetCode"))%>"; //将验证码输出到JS变量
//检验表单的合法性
function FeedBack() {
if (document.RegUser.CompanyName.value == "") {
alert("\请正确填写企业名称!");
document.RegUser.CompanyName.focus();
}
else if (document.RegUser.ContactMan.value == "") {
alert("\请正确填写企业联系人!");
document.RegUser.ContactMan.focus();
}
else if (document.RegUser.Password.value == "") {
alert("\密码不能为空!");
document.RegUser.Password.focus();
}
else if ((document.RegUser.Password.value).length<4) {
alert("\密码至少4位!");
document.RegUser.Password.focus();
}
else if (document.RegUser.PasswordTwo.value != document.RegUser.Password.value ) {
alert("\两次输入的密码不相同!");
document.RegUser.PasswordTwo.focus();
}
else if (document.RegUser.Email.value == "") {
alert("\E-Mail 不能为空!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Email.value == "" || !checkemail(document.RegUser.Email.value)) {
alert("\E-Mail 填写错误!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Add.value == "") {
alert("\请正确填写联系地址!");
document.RegUser.Add.focus();
}else if(document.RegUser.verifycode.value!=_vertyCode)
{
alert("\验证码填写错误!");
document.RegUser.verifycode.focus();
}
</script>
============================================================
比较好的做法是在注册页面验证是否填写验证码,而在注册保存的服务器端代码验证
验证码是否正确:
在Xiajin_register.asp中的JS:
<script language="javascript">
//检查email的合法性
function checkemail(inputstr){
if(inputstr.indexOf('@') != -1 && inputstr.indexOf('.')!= -1)
return true;
else
return false;
}
//检验表单的合法性
function FeedBack() {
if (document.RegUser.CompanyName.value == "") {
alert("\请正确填写企业名称!");
document.RegUser.CompanyName.focus();
}
else if (document.RegUser.ContactMan.value == "") {
alert("\请正确填写企业联系人!");
document.RegUser.ContactMan.focus();
}
else if (document.RegUser.Password.value == "") {
alert("\密码不能为空!");
document.RegUser.Password.focus();
}
else if ((document.RegUser.Password.value).length<4) {
alert("\密码至少4位!");
document.RegUser.Password.focus();
}
else if (document.RegUser.PasswordTwo.value != document.RegUser.Password.value ) {
alert("\两次输入的密码不相同!");
document.RegUser.PasswordTwo.focus();
}
else if (document.RegUser.Email.value == "") {
alert("\E-Mail 不能为空!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Email.value == "" || !checkemail(document.RegUser.Email.value)) {
alert("\E-Mail 填写错误!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Add.value == "") {
alert("\请正确填写联系地址!");
document.RegUser.Add.focus();
}else if(document.RegUser.verifycode.value=="")
{
alert("\请填写验证码!");
document.RegUser.verifycode.focus();
}
</script>
在Register_save.asp页面添加如下代码:
<%
'验证码判断
Dim CheckCode:CheckCode=trim(Request.Form("Register_save.asp"))
If CheckCode<>trim(Session("GetCode")) Then
Response.Write("验证码错误")
Response.End()
End IF
%>
注意,需要将以下JS代码放到验证码图片调用的后面,否则达不到效果
<script language="javascript">
//检查email的合法性
function checkemail(inputstr){
if(inputstr.indexOf('@') != -1 && inputstr.indexOf('.')!= -1)
return true;
else
return false;
}
var _vertyCode="<%=trim(Session("GetCode"))%>"; //将验证码输出到JS变量
//检验表单的合法性
function FeedBack() {
if (document.RegUser.CompanyName.value == "") {
alert("\请正确填写企业名称!");
document.RegUser.CompanyName.focus();
}
else if (document.RegUser.ContactMan.value == "") {
alert("\请正确填写企业联系人!");
document.RegUser.ContactMan.focus();
}
else if (document.RegUser.Password.value == "") {
alert("\密码不能为空!");
document.RegUser.Password.focus();
}
else if ((document.RegUser.Password.value).length<4) {
alert("\密码至少4位!");
document.RegUser.Password.focus();
}
else if (document.RegUser.PasswordTwo.value != document.RegUser.Password.value ) {
alert("\两次输入的密码不相同!");
document.RegUser.PasswordTwo.focus();
}
else if (document.RegUser.Email.value == "") {
alert("\E-Mail 不能为空!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Email.value == "" || !checkemail(document.RegUser.Email.value)) {
alert("\E-Mail 填写错误!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Add.value == "") {
alert("\请正确填写联系地址!");
document.RegUser.Add.focus();
}else if(document.RegUser.verifycode.value!=_vertyCode)
{
alert("\验证码填写错误!");
document.RegUser.verifycode.focus();
}
</script>
============================================================
比较好的做法是在注册页面验证是否填写验证码,而在注册保存的服务器端代码验证
验证码是否正确:
在Xiajin_register.asp中的JS:
<script language="javascript">
//检查email的合法性
function checkemail(inputstr){
if(inputstr.indexOf('@') != -1 && inputstr.indexOf('.')!= -1)
return true;
else
return false;
}
//检验表单的合法性
function FeedBack() {
if (document.RegUser.CompanyName.value == "") {
alert("\请正确填写企业名称!");
document.RegUser.CompanyName.focus();
}
else if (document.RegUser.ContactMan.value == "") {
alert("\请正确填写企业联系人!");
document.RegUser.ContactMan.focus();
}
else if (document.RegUser.Password.value == "") {
alert("\密码不能为空!");
document.RegUser.Password.focus();
}
else if ((document.RegUser.Password.value).length<4) {
alert("\密码至少4位!");
document.RegUser.Password.focus();
}
else if (document.RegUser.PasswordTwo.value != document.RegUser.Password.value ) {
alert("\两次输入的密码不相同!");
document.RegUser.PasswordTwo.focus();
}
else if (document.RegUser.Email.value == "") {
alert("\E-Mail 不能为空!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Email.value == "" || !checkemail(document.RegUser.Email.value)) {
alert("\E-Mail 填写错误!");
document.RegUser.Email.focus();
}
else if (document.RegUser.Add.value == "") {
alert("\请正确填写联系地址!");
document.RegUser.Add.focus();
}else if(document.RegUser.verifycode.value=="")
{
alert("\请填写验证码!");
document.RegUser.verifycode.focus();
}
</script>
在Register_save.asp页面添加如下代码:
<%
'验证码判断
Dim CheckCode:CheckCode=trim(Request.Form("Register_save.asp"))
If CheckCode<>trim(Session("GetCode")) Then
Response.Write("验证码错误")
Response.End()
End IF
%>
更多追问追答
追问
谢谢你的回答
不知为什么 你们两个的方法我都试过了 总是提示验证码错误,不填也这么提示,填对了也这么提示,不知道是哪里的问题。
追答
这个写法是区分大小写的,你看下是不是你大小写不对。如果要不区分大小写还要稍微处理下。
展开全部
给个ajax的实例给你,输入完验证码后单击输入框外就提示是否正确,你摸索一下。值得一提的是Option Explicit要放在网页头部,不然会出错。
解释一下这样做的原因,如果直接在当前页面获取验证码的session值会是上一次的而不是当前的,所以在另一个asp文件中获取的验证码session值才是当前文件生成的。
index.asp代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax验证码</title>
</head>
<body>
<img name="ok" src="GetCode.asp" />
<br />
<input type="text" id="txtName" onBlur="CheckUserName()"/><br /> <span id="span_name"></span>
<div></div>
<script type="text/javascript">
function GetID(id)
{
return (document.getElementById) ? document.getElementById(id) : document.all[id] ;
}
function getxmlobj() {
var A;
var msxmlobj = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
for (var i = 0; i < msxmlobj.length; i++) {
try {
A = new ActiveXObject(msxmlobj[i]);
} catch (e) {
A = null;
}
}
if(!A && typeof XMLHttpRequest != "undefined")
A = new XMLHttpRequest();
if (!A)
window.alert("您的浏览器不支持此功能。推荐使用IE6.0以上版本的浏览器。");
return A;
}
function CheckUserName()
{
var username = GetID("txtName").value;
var objXml = getxmlobj();
objXml.open("Get", "20.asp?Action=" + username, false);
objXml.send();
var strResult = objXml.responseText;
if(strResult == "-1")
{
GetID("span_name").innerHTML="验证码正确";
}
else
{
GetID("span_name").innerHTML="验证码不正确";
}
}
</script>
</body>
</html>
新建一个20.asp页面,代码如下:
<%
response.expires=-1 //确保这个页面不被缓存
dim Action
Action=Request.querystring("Action")
if Action=trim(Session("GetCode")) then
response.write -1
end if
%>
解释一下这样做的原因,如果直接在当前页面获取验证码的session值会是上一次的而不是当前的,所以在另一个asp文件中获取的验证码session值才是当前文件生成的。
index.asp代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax验证码</title>
</head>
<body>
<img name="ok" src="GetCode.asp" />
<br />
<input type="text" id="txtName" onBlur="CheckUserName()"/><br /> <span id="span_name"></span>
<div></div>
<script type="text/javascript">
function GetID(id)
{
return (document.getElementById) ? document.getElementById(id) : document.all[id] ;
}
function getxmlobj() {
var A;
var msxmlobj = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
for (var i = 0; i < msxmlobj.length; i++) {
try {
A = new ActiveXObject(msxmlobj[i]);
} catch (e) {
A = null;
}
}
if(!A && typeof XMLHttpRequest != "undefined")
A = new XMLHttpRequest();
if (!A)
window.alert("您的浏览器不支持此功能。推荐使用IE6.0以上版本的浏览器。");
return A;
}
function CheckUserName()
{
var username = GetID("txtName").value;
var objXml = getxmlobj();
objXml.open("Get", "20.asp?Action=" + username, false);
objXml.send();
var strResult = objXml.responseText;
if(strResult == "-1")
{
GetID("span_name").innerHTML="验证码正确";
}
else
{
GetID("span_name").innerHTML="验证码不正确";
}
}
</script>
</body>
</html>
新建一个20.asp页面,代码如下:
<%
response.expires=-1 //确保这个页面不被缓存
dim Action
Action=Request.querystring("Action")
if Action=trim(Session("GetCode")) then
response.write -1
end if
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你不要在注册页面判断,这样用JS判断很容易在网页代码中出现明文的验证码。
建议你改在Register_save.asp中判断。
<%verifycode= request.form("verifycode")
if verifycode <> session("getcode") then
response.write "<script>alert('输入的验证码不正确');history.back();</script>"
response.end
end if
%>
建议你改在Register_save.asp中判断。
<%verifycode= request.form("verifycode")
if verifycode <> session("getcode") then
response.write "<script>alert('输入的验证码不正确');history.back();</script>"
response.end
end if
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你最好在数据处理页面进行判断,如果一定要在前面验证的话那么可以用ajax实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询