我想用表单投票的方式对网站进行“好,中,差”评价,并把投票结果提交给设置好的数据库表,供自己处理。网友提供的投票表单代码如下,可是运行出错,runsurvey.asp代码运行后显示“HTTP500内部错误”,在IIS服务器记事本里显示“800a0408|无效字符 80”错误,并且提交的数据写不进数据库。希望高手给看看代码错在那儿呢?
脚本程序语言:asp
数据库表:survey(id,userIp,result)
id(主键,自动编号)
userIp(用户IP,文本)
result(用户投票,文本)
网站目录结构
wwwroot ------------------网站根目录
|
|
survey.asp ------------投票页面
|
|
runSurvey.asp----------处理投票结果页面
|
|
data-------------------文件夹
投票页面 survey.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!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=utf-8" />
<title>网络调查</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="?act=submit">
<table width="256" height="225" align="center" cellspacing="0">
<tr>
<td > <input type="radio" name="Survey" value="好" />
好</td>
</tr>
<tr>
<td > <input type="radio" name="Survey" value="中" />
中 </td>
</tr>
<tr>
<td > <input type="radio" name="Survey" value="差" />
差</td>
</tr>
<tr>
<td ><input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit2" value="重写" /></td>
</tr>
</table>
</form>
</body>
</html>
下面是处理结果页面 runSurvey.asp (该代码运行后显示“HTTP500内部错误”,在IIS服务器记事本里显示“800a0408|无效字符 80”错误)
<%
'////链接数据库
db="data/survey.mdb" '数据库文件位置
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
on error resume next
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn.open connstr
'接收投票页面传来的值
Survey = request.Form("Survey")
'获取用户IP
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then
userip = Request.ServerVariables("REMOTE_ADDR")
end if
'开始插入数据
set rs = server.CreateObject("adodb.recordset")
rs.open "select * from survey",conn,3,3
rs.addnew()
rs("userIp") = userip
rs("result") = Survey
rs.update()
rs.close
set rs = nothing
response.Write("投票成功!")
conn.close
set conn = nothing
end if
%>
IIS问题,权限问题,或者代码问题...
你首先应该,确认是哪句代码引发了错误,你可以用response.end的方式,测试每一个功能代码段.你这个的问题,多半是出在数据库连接字符串上,你把连接字符串,打出来看看