首页 新闻 会员 周边

不显示删除回复显示所有回复显示星级回复显示得分回复 写的投票表单代码提交数据不成功,并且会出现HTTP500错误,“无效字符”显示

0
悬赏园豆:15 [已解决问题] 解决于 2010-10-12 15:29

我想用表单投票的方式对网站进行“好,中,差”评价,并把投票结果提交给设置好的数据库表,供自己处理。网友提供的投票表单代码如下,可是运行出错,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
%
>

 

雪晶的主页 雪晶 | 初学一级 | 园豆:0
提问于:2010-10-05 22:10
< >
分享
最佳答案
0

IIS问题,权限问题,或者代码问题...

收获园豆:15
Astar | 高人七级 |园豆:40805 | 2010-10-06 11:37
数据库文件夹的权限我也做了设置。高手能直接指出代码错在哪儿吗?IIS具体问题会出在什么地方呢?怎么解决呢?谢谢啊!
雪晶 | 园豆:0 (初学一级) | 2010-10-06 14:27
@雪晶:不是有错误提示吗,百度一下。
Astar | 园豆:40805 (高人七级) | 2010-10-06 16:35
其他回答(1)
0

你首先应该,确认是哪句代码引发了错误,你可以用response.end的方式,测试每一个功能代码段.你这个的问题,多半是出在数据库连接字符串上,你把连接字符串,打出来看看

chenleinet | 园豆:270 (菜鸟二级) | 2010-10-06 21:16
db="data/survey.mdb" '数据库文件位置connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"on error resume nextset conn=server.createobject("ADODB.CONNECTION")if err thenerr.clearelseconn.open connstr
支持(0) 反对(0) 雪晶 | 园豆:0 (初学一级) | 2010-10-07 22:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册