高手帮忙,验证码问题,实在是搞的头痛了,帮忙

jmxye 2009-06-07 11:23:10
我有个ASP网站,有留言功能,最近老是被人恶意留言,一天都能发一万个留言广告,我自己尝试加验证码,但都不成功,
主要有以下两种情况,(验证码,放上去始终都能正常显示,但没有起到验证效果)
1。放上验证码,验证码正常显示,但填不填验证码,都能提交,
2、填验证码但留言内容提交不上去了,
实在是头痛,请教CSDN里的高手帮忙,弄一下,
一楼附上没加验证码的源代码,二楼附上我自己加的验证码,


<!--#include file="../../inc/function.asp" -->
<% Uid=CheckId(request("Uid"))
set rsc=conn.execute("select C_CompanyName,I_CompanySort,C_Img,C_CompanyInfo,C_CompanyLink,C_Product,C_koubei,C_koubeils,C_CompanyImg,C_Contact,C_Sex,C_Tel,C_Fax,C_HandPhone,C_Address,C_renzheng,C_Email from TB_Company where I_MemberID="&clng(Uid)) %>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="<%= rsc("C_CompanyName") %>,留言">
<META name="copyright" content="留言">
<title>留言</title>
<script language="javaScript" >
function checkform() {

//定义函数

if (document.form5.C_Name.value=="") {
alert("对不起,姓名没有填写!");
document.form5.C_Name.focus();
return (false);
}
if (document.form5.C_Name.value.length>20) {
alert("姓名不能超过20个字符!");
document.form5.C_Name.focus();
return (false);
}
if (document.form5.C_Tel.value=="") {
alert("对不起,请填写联系电话!");
document.form5.C_Tel.focus();
return (false);
}

if(document.form5.C_Email.value.length!=0)
{
if (document.form5.C_Email.value.charAt(0)=="." ||
document.form5.C_Email.value.charAt(0)=="@"||
document.form5.C_Email.value.indexOf('@', 0) == -1 ||
document.form5.C_Email.value.indexOf('.', 0) == -1 ||
document.form5.C_Email.value.lastIndexOf("@")==document.form5.C_Email.value.length-1 ||
document.form5.C_Email.value.lastIndexOf(".")==document.form5.C_Email.value.length-1)
{
alert("Email地址格式不正确!");
document.form5.C_Email.focus();
return false;
}
}
else
{
alert("Email不能为空!");
document.form5.C_Email.focus();
return false;
}
if (document.form5.C_Title.value=="") {
alert("请填写留言标题!")
document.form5.C_Title.focus()
return (false);
}

if (document.form5.C_Content.value=="" || document.form5.C_Content.value.length>500) {
alert("对不起,内容没有填写,内容不能超过500个字!")
document.form5.C_Content.focus()
return (false);
}
return true;
}
</script>
<%
function gb_add()
call post_add()
C_Content=KillBadCode(request.form("C_Content"))
addtime=now()
sql="insert into TB_Gbook (I_MemberID,C_Name,C_Email,C_Tel,C_Title,C_Content,DT_AddDate,C_IP) values("&Uid&",'"&request.Form("C_Name")&"','"&request.Form("C_Email")&"','"&request.Form("C_Tel")&"','"&request.Form("C_Title")&"','"&request.Form("C_Content")&"','"&now()&"','"&Request.ServerVariables("Remote_Addr")&"')"
conn.execute(sql)
response.write "<script>alert('留言提交成功!');history.back();</script>"
response.end
end function
if request.Form("C_Content")<>"" then
call gb_add()
end if %>
<table width="778" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#FFFFFF" class="broder4">
<tr>
<td align="center" valign="top">
<table width="755" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top" bgcolor="#FAF7EF" class="broder5"> <table width="98%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10" valign="top"> </td>
<td valign="top" bgcolor="#FCF9F3">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
</tr>
</table>
<script language="javascript" type="text/javascript" src="deco760-90.js"></script><table width="98%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="20"><img src="imagg/img/jcsc_60.gif" width="12" height="26"></td>
<td width="520" valign="bottom" class="downline"><strong><font color="#FF0000"><span class="hf21"><strong><font color="#FF3300">
联系商家:<a href="index.asp?Uid=<%= Uid %>" class="menu"><%= rsc("C_CompanyName") %></a></font></strong></span></font></strong></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td height="21"><form action="" method="post" name="form5" id="form5" onsubmit="return checkform()">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="15%">姓  名:</td>
<td width="85%"><input name="C_Name" type="text" id="C_Name" size="30" maxlength="20">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input name="C_Tel" type="text" id="C_Tel" size="30" maxlength="50">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>电子邮件:</td>
<td><input name="C_Email" type="text" id="C_Email" size="30" maxlength="100">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>标  题:</td>
<td><input name="C_Title" type="text" id="C_Title" size="30" maxlength="100">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>内  容:</td>
<td><textarea name="C_Content" cols="40" rows="10" id="C_Content"></textarea>
<font color="#FF0000">*</font><br>
留言内容不要超过500字 </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="提交留言">
  <input type="reset" name="Submit2" value="清空重写">
</td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
<!--#include file="end.asp" -->
...全文
49 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmxye 2009-06-14
  • 打赏
  • 举报
回复
?????????????????
jmxye 2009-06-08
  • 打赏
  • 举报
回复
继续求解
shzhutong 2009-06-08
  • 打赏
  • 举报
回复
ddddddddddddddddd
shzhutong 2009-06-08
  • 打赏
  • 举报
回复
帮顶,楼主意思哪位兄弟帮忙给弄好
jmxye 2009-06-07
  • 打赏
  • 举报
回复
兄弟能不能说的详细点啊,我实在是没办法弄了,都弄了几天了,
chennie0 2009-06-07
  • 打赏
  • 举报
回复
我没有看你的验证码代码我相信是对的。
你可以用vs的验证控件CompareValidator控件验证用户输入的验证码和你提供的验证码是不是一致的。是一致的都可以通过验证提交。这样作的话你的源代码几乎都可以不用更改了。
我也作过类试的功能。
jmxye 2009-06-07
  • 打赏
  • 举报
回复
<!--#include file="../../inc/function.asp" -->
<% Uid=CheckId(request("Uid"))
set rsc=conn.execute("select C_CompanyName,I_CompanySort,C_Img,C_CompanyInfo,C_CompanyLink,C_Product,C_koubei,C_koubeils,C_CompanyImg,C_Contact,C_Sex,C_Tel,C_Fax,C_HandPhone,C_Address,C_renzheng,C_Email from TB_Company where I_MemberID="&clng(Uid)) %>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="<%= rsc("C_CompanyName") %>,留言">
<META name="copyright" content="留言">
<title>留言</title>
<table width="778" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#FFFFFF" class="broder4">
<tr>
<td align="center" valign="top">
<table width="755" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top" bgcolor="#FAF7EF" class="broder5"> <table width="98%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10" valign="top"> </td>
<td valign="top" bgcolor="#FCF9F3">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
</tr>
</table>
<script language="javascript" type="text/javascript" src="deco760-90.js"></script><table width="98%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="20"><img src="imagg/img/jcsc_60.gif" width="12" height="26"></td>
<td width="520" valign="bottom" class="downline"><strong><font color="#FF0000"><span class="hf21"><strong><font color="#FF3300">
联系商家:<a href="index.asp?Uid=<%= Uid %>" class="menu"><%= rsc("C_CompanyName") %></a></font></strong></span></font></strong></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td height="21"><form action="" method="post" name="form5" id="form5" action="login_check1.asp">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="15%">姓  名:</td>
<td width="85%"><input name="C_Name" type="text" id="C_Name" size="30" maxlength="20">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input name="C_Tel" type="text" id="C_Tel" size="30" maxlength="50">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>电子邮件:</td>
<td><input name="C_Email" type="text" id="C_Email" size="30" maxlength="100">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>标  题:</td>
<td><input name="C_Title" type="text" id="C_Title" size="30" maxlength="100">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td>内  容:</td>
<td><textarea name="C_Content" cols="40" rows="10" id="C_Content"></textarea>
<font color="#FF0000">*</font><br>
留言内容不要超过500字 </td>
</tr>
<tr>
<td>验证码</td>
<td><input name="syscode" type="text" id="syscode" style="BORDER-RIGHT: #ffffff 1px groove; BORDER-TOP: #ffffff 1px groove; FONT: 12px Verdana,Geneva,sans-serif; BORDER-LEFT: #ffffff 1px groove; COLOR: #000000; BORDER-BOTTOM: #ffffff 1px groove; BACKGROUND-COLOR: #dff1f9" size="6" maxlength="4">
<img src="../../inc/code.asp" align="absmiddle">
<input name="Url" type="hidden" id="Url" value="<%= request.QueryString("Url") %>">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="提交留言">
  <input type="reset" name="Submit2" value="清空重写">
</td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
<!--#include file="end.asp" -->
jmxye 2009-06-07
  • 打赏
  • 举报
回复
我现在看到这个头就痛,改了无数次都不行,麻烦哪位兄弟,帮忙弄完整
jmxye 2009-06-07
  • 打赏
  • 举报
回复
楼上几位兄弟,我自己对ASP不懂,能不能帮我改一下啊
Jamin_Ma 2009-06-07
  • 打赏
  • 举报
回复
生成验证码的时候保存在session中,提交的时候用ajax验证。

js中用获得ajax返回一个参数:0或者1,然后进行处理。

补充:form 表单有一个 onsubmit属性,当该属性为true才能提交表单。
例:
<script type="text/javascript">
function f(){
var b=false;
if(...){ <!-- 可以对ajax返回的信息验证 -->
b = true;
}
return b;
}
</script>

<form onsubmit="retrun f();">
............
<input type="submit" value="SUBMIT">
</from>

----------------------------------------------------
用js验证表单很有用
zsyzzz 2009-06-07
  • 打赏
  • 举报
回复
是不是没有和sesion比较啊 之前见过一个网站也是那样的 验证码随便填 都能提交
sayfree 2009-06-07
  • 打赏
  • 举报
回复
验证码可能不起作用。
你可以设置禁止表单外提交。

<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
response.write "<tr><td style='font:9pt Verdana'>"
response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!"
response.write "</td></tr></table></center>"
response.end
end if
%>


<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
response.redirct "login.asp"
response.end
end if
%>


jmxye 2009-06-07
  • 打赏
  • 举报
回复
??????????????
jmxye 2009-06-07
  • 打赏
  • 举报
回复
兄弟,上面的代码应该加在什么地方啊
session是Session("GetCode") = zNum
wufucai 2009-06-07
  • 打赏
  • 举报
回复
上面写错了,应该是:
response.write " <script>alert('验证码错误!'); </script>"
wufucai 2009-06-07
  • 打赏
  • 举报
回复
验证码一般都是用session来存储的,你gb_add()函数里加上
if request.Form("syscode")<>session("") then
response.write " <script>alert('留言提交成功!');</script>"
response.end
end if

具体的session名你看一下code.asp是什么

jmxye 2009-06-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 iisbsd 的回复:]
你的验证码在syscode里面,可是没见你处理啊?
[/Quote]
兄弟啊,我自己ASP不是太懂,我这个程序是网上下的,他的留言功能不带验证,已经害死我了,帮我弄下 啊
iisbsd 2009-06-07
  • 打赏
  • 举报
回复
你的验证码在syscode里面,可是没见你处理啊?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧