刷新一次 数据库就增加一条记录 很无语··········

tuhuolongan 2010-07-15 10:20:19
有个奇怪的问题 网页刷新一次 数据库就增加一条记录 即使它是空的 相当怀疑下面的函数有错误

<script language="javascript">
function hui_int(){ //点击发帖后将信息写入数据库
var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';
if (hui_info.length !=0){
'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
}
else{
alert("发帖不得为空!")
}
}
</script>

下面是我这个页面的代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
if session("uid")=""then
response.Write("欢迎游客")
else
response.Write("欢迎"&session("uid"))
end if
%>
<script language="javascript">
var fd='<%=session("uid")%>'
function huitie(){ //验证游客无法发帖
var f_t=document.getElementById("hui");
if (fd !="")
f_t.style.display="block";
else
{
alert("请先登录");
window.location.href="index.asp";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--#include file="connt.asp"-->
<head>
<style>
span {
float:right;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link href="css/bbs.css" rel="stylesheet" type="text/css"/>
<title>主贴区</title>
</head>
<body background="img/beij.jpg">
<%
set rs=Server.CreateObject("adodb.recordset")
sql="select * from new_page ORDER BY ann_time"
rs.open sql,connt,1,3
%>
<script language="javascript">
function hui_int(){ //点击发帖后将信息写入数据库
var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';
if (hui_info.length !=0){
'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
}
else{
alert("发帖不得为空!")
}
}
</script>
<div id="content">
<div id="head"> </div>
<div id="bbsmain">
<table align="center" width="900" border="10" cellspacing="0" cellpadding="0">
<%do while not rs.eof%>
<tr>
<td width="91" rowspan="2"><%=rs("ann_userid")%></td>

</tr>
<tr>
<td><a href="#"><%=rs("topic")%></a></td>
</tr>
<tr>
<td rowspan="2">
<p/>
 
</p>
<p/>
<%=rs("ann_time")%>
</p>
</td>
<td></td>
</tr>
<tr>
<td>
<center>
<%=rs("body")%>
</center>
</td>
</tr>
<%rs.movenext
loop%>
<table width="900" height="300">
<tr>
<td>
<input type="button" value="我要发帖" onclick="huitie()" />
<input type="reset" />
<input type="button" value="确定" onclick="hui_int()"/>
</td>
<td id="hui"> 标题:
<input type="text" size="40" id="biaoti" />
<p>
<textarea id="hui_info" cols="70" rows="20"></textarea>
</td>
</tr>
<tr> </tr>
</table>
</table>
</div>
</div>
</body>
</html>




我真的无语了 又找不出来错 纠结啊
...全文
300 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuhuolongan 2010-07-19
  • 打赏
  • 举报
回复
感谢楼上的大大们不吝赐教 我本来已经绝望了,没想到一个周末回来多了那么多的回复 特别是关于服务端与脚本执行的问题 醍醐灌顶啊~~~
再次对大家的帮助表示感谢!
bxqiujie 2010-07-18
  • 打赏
  • 举报
回复
asp/js基础知识搞好点
  • 打赏
  • 举报
回复
这个问题。。。。。!我记得我出差之前就回答了。难道楼主是多发的??

<script language="javascript">
function hui_int(){ //点击发帖后将信息写入数据库
var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';
if (hui_info.length !=0){
//////////从这里开始
'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
//////中间这一段!不能放在这里。在JS的IF条件里执行ASP???ASP是在服务器上先执行的,JS到客户端才执行。所以不管你的JS条件如何,ASP已经添加记录了。
//////////到这里结束
}
else{
alert("发帖不得为空!")
}
}
</script>
beyond_me21 2010-07-17
  • 打赏
  • 举报
回复
客户端脚本是用来验证客户端输入的,在服务端还要重新进行服务端的验证,你这样即使客户端的验证没有问题了,只要浏览器禁用客户端脚本还不是一样出问题
beyond_me21 2010-07-17
  • 打赏
  • 举报
回复
真是无语啊
jackey07 2010-07-17
  • 打赏
  • 举报
回复
存在空白符吧...
要是没空白符,设置了不能为空,是写不进去的
gingerkang 2010-07-16
  • 打赏
  • 举报
回复
搞清楚客户端和服务端
服务端执行完了之后才传递到客户端显示的。搞清楚流程和逻辑再写程序.
KK3K2005 2010-07-16
  • 打赏
  • 举报
回复
基础知识是很重要的
z109876543210 2010-07-16
  • 打赏
  • 举报
回复
完全是这个问题...... 晕,这么多人只有一个说对

搞清楚客户端和服务端
服务端执行完了之后才传递到客户端显示的。搞清楚流程和逻辑再写程序.










<script language="javascript">
function hui_int(){ //点击发帖后将信息写入数据库
var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';
if (hui_info.length !=0){

////////////////////////////////////
下面这些是服务器先执行的....然后 才执行 js : if (hui_info.length !=0)
你的js : if (hui_info.length !=0)对服务器代码一点影响也没有



'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
}
else{
alert("发帖不得为空!")
}
}
</script>

tuhuolongan 2010-07-15
  • 打赏
  • 举报
回复
条件没问题啊 数据写入我感觉自己能搞定 关键是刷新就写入空数据才让我烦呢 用SQL即使设置字段不为空都照样写空数据 晕啊

还有 4楼的 你的头像好YD 啊 囧~
yzx0607 2010-07-15
  • 打赏
  • 举报
回复
if (hui_info.length !=0){

在这加个 alert("1") 看看,如果每次都弹1,那就是条件有问题


'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
}
  • 打赏
  • 举报
回复
重复提交了,每次刷新都重新请求了
tuhuolongan 2010-07-15
  • 打赏
  • 举报
回复
TO:cjfriends 跳转能成功 为空的时候弹框也出
总结下 两个问题
1 刷新就增加一条记录 (如果登录过了就只有一个字段 “用户名” 没登录就全部为空)
2 发帖不成功 内容无法写入数据库
cjfriends 2010-07-15
  • 打赏
  • 举报
回复
在 hui_int 函数中,如果成功添加后加一条跳转语句试一试,跳转到本页面也行
qq608 2010-07-15
  • 打赏
  • 举报
回复
处理放另外一个也面,中间加个跳转
tuhuolongan 2010-07-15
  • 打赏
  • 举报
回复
我把
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>

改成
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&ft&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>

刷新后导入的数据连用户名也没有了 看来是
 var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';
也有错误 不会改啊 来人帮帮我啊~~
daocaoren_001 2010-07-15
  • 打赏
  • 举报
回复
跳转到另一个页面出来后在返回
tuhuolongan 2010-07-15
  • 打赏
  • 举报
回复
我也对这段很不放心
这段我就是要把用户名 发帖时间 标题 内容 写入数据库啊
还有这段

var biaoti=document.getElementById("biaoti").value;
var hui_info=document.getElementById("hui_info").value;
var hui_time=new Date();
var ft='<%=session("uid")%>';


麻烦帮我看看 这样变量能得到值吗
scc1980 2010-07-15
  • 打赏
  • 举报
回复

'<%set rs2=server.CreateObject("adodb.recordset")%>'
<%sql2="insert into new_page (ann_userid,ann_time,topic,body) values ('"&session("uid")&"','"&hui_time&"','"&biaoti&"','"&hui_info&"')"%>
'<%set rs2=connt.execute(sql2)%>'
怎么这么乱,你这是写的什么??
tuhuolongan 2010-07-15
  • 打赏
  • 举报
回复


没用 照样刷新就添加空数据行 我想知道刷新怎么会写入数据呢 我的函数不是用onclick才执行的吗
加载更多回复(3)

28,391

社区成员

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

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