本人是个初学者,有个问题要问下高手:我的表单和表单的提交做在同一个页面,但测试的时候,如果刷新页面,会发生重复提交页面的情况,如何解决这个问题?不要复制过来的,感激不尽!(请把代码直接填充进去,并做标志,谢谢高手)<html>
<body>
<script language="javascript">
function change(){
document.getElementById("name1").value=document.getElementById("name").value;
document.getElementById("name2").value=document.getElementById("title").value;
document.getElementById("name3").value=document.getElementById("message").value;
document.getElementById("name4").value=document.getElementById("email").value;
}
//alert("提交成功!");
</script>
<TABLE align="=center" WIDTH="60%" border="=1"></a>
<tr><td align="center">留言板:</td><td></td><td align="=center">您提交的留言是:</td></tr>
<form action="zhang-test1.php" method="post">
<tr><td>用户名: <input type="text" name="name" /></td><td></td><td>用户名: <input type="text" name="name1"></td></tr>
<tr><td>标题: <input type="text" name="title" /></td><td></td><td>标题: <input type="text" name="name2" ></td></tr>
<tr><td>内容: <input type="text" name="message" /></td><td></td><td>内容: <input type="text" name="name3" ></td></tr>
<tr><td>e-mail: <input type="text" name="email" /></td><td></td><td>e-mail: <input type="text" name="name4" ></td></tr>
<tr><td align="center"><input type="button" onclick="change();" value="提交"/></td><td></td><td>时间: <input type="text" name="name5" value=<?php
if(phpversion()>='5.1.0')//获得当前PC时间
{
date_default_timezone_set('Asia/Shanghai');
}
$time=date('Y-m-d H:i:s',time());
?>>  <input type="submit" value="提交数据库"/></td></tr>
</form>
</TABLE>
<?php
$name=$_POST["name"];
$title=$_POST["title"];
$message=$_POST["message"];
$email=$_POST["email"];
$conn2=mysql_connect("localhost","root","") or die("无法连接数据库");
mysql_select_db("shopnc",$conn2) or die("无法连接数据库shopnc");
$sql2="insert into user_message(name,title,message,email,time) values ('$name','$title','$message','$email','$time')";
mysql_query($sql2)or die(mysql_error());
?>
</body>
</html>
<body>
<script language="javascript">
function change(){
document.getElementById("name1").value=document.getElementById("name").value;
document.getElementById("name2").value=document.getElementById("title").value;
document.getElementById("name3").value=document.getElementById("message").value;
document.getElementById("name4").value=document.getElementById("email").value;
}
//alert("提交成功!");
</script>
<TABLE align="=center" WIDTH="60%" border="=1"></a>
<tr><td align="center">留言板:</td><td></td><td align="=center">您提交的留言是:</td></tr>
<form action="zhang-test1.php" method="post">
<tr><td>用户名: <input type="text" name="name" /></td><td></td><td>用户名: <input type="text" name="name1"></td></tr>
<tr><td>标题: <input type="text" name="title" /></td><td></td><td>标题: <input type="text" name="name2" ></td></tr>
<tr><td>内容: <input type="text" name="message" /></td><td></td><td>内容: <input type="text" name="name3" ></td></tr>
<tr><td>e-mail: <input type="text" name="email" /></td><td></td><td>e-mail: <input type="text" name="name4" ></td></tr>
<tr><td align="center"><input type="button" onclick="change();" value="提交"/></td><td></td><td>时间: <input type="text" name="name5" value=<?php
if(phpversion()>='5.1.0')//获得当前PC时间
{
date_default_timezone_set('Asia/Shanghai');
}
$time=date('Y-m-d H:i:s',time());
?>>  <input type="submit" value="提交数据库"/></td></tr>
</form>
</TABLE>
<?php
$name=$_POST["name"];
$title=$_POST["title"];
$message=$_POST["message"];
$email=$_POST["email"];
$conn2=mysql_connect("localhost","root","") or die("无法连接数据库");
mysql_select_db("shopnc",$conn2) or die("无法连接数据库shopnc");
$sql2="insert into user_message(name,title,message,email,time) values ('$name','$title','$message','$email','$time')";
mysql_query($sql2)or die(mysql_error());
?>
</body>
</html>
把A,B写成同一个文件是一回事。
数据无法给db和你防止重复提交本身没有任何关系的。
难道你把提交代码写到 page load 事件里面去了???
lz用下面代码把提交和处理分以下if ($_SERVER["REQUEST_METHOD"]=="POST"){}
if ($_SERVER["REQUEST_METHOD"]=="GET"){}
是想让你把输入部分和提交后的处理部分分一下,清楚一点。
我猜你这个 一个是通过get方式打开的资料输入页面 一个是通过post打开的数据处理页面。写在一个一个php文件当然可以,但是你最好知道在打开资料输入页面的时候你这段代码哪些是需要执行的,而点击提交按钮后,又是哪些断码是需要执行的。
我觉得的你有点乱。搞不清代码是怎么执行的话,加段正常的代码都有可能让你出bug
这么说吧 你这个页面一打开就会往db里insert。这是你需要的吗?
这个问题搞明白了,再说重复提交的问题比较好
2. 用会话session,cookie之类记录提交次数,或时间。
表单页面-》提交页面,只不过你现在写到一个页面里边了在表单页面增加一个session并赋值,在提交的页面中,获取此session的值进行判断,如果此session有值则提交到数据库,并同时删除此session;如果没有值则返回到提交的页面
之前我也有做过设一个session值,后面提交后判断,但是还是不行,奇怪,能帮我看下我的代码吗?方便的话,帮我修改下吧?