热搜:NVER node 开发 php

为什么刷新一下页面就又重复了上次的留言

2024-09-13 16:20:01
为什么刷新一下页面就又重复了上次的留言


<?phpinclude('conn.php');if($_POST['username']){$sql = "insert into easy values('$_POST[username]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);}?>//中间是表单样式,略去<?php   $SQL="SELECT * FROM easy order by posttime desc ";  $query=mysql_query($SQL);  while($row=mysql_fetch_array($query)){?>  <?php  }?>
标题:<?=$row[title]?> 用户:<?=$row[username]?> <?= $row[posttime]?>
内容:<?= ($row[content])?>


回复讨论(解决方案)

<?phpinclude('conn.php'); if($_POST['username']) //我想是不是这里有问题,但只是刷新页面,并没有传递数据呀

php 不太懂 不过从jsp 的角度出发如果 请求页面数据放在session里面就有那个问题

你略去的部分,恰恰就是最可能的问题原因

提交后header跳转一下。

楼主可否贴出你的提交页面,这样才能定位问题呢。

加一个表单令牌的验证防止生重复提交

我还是全都贴上吧。。


<?phpinclude('conn.php');if($_POST['username']){$sql = "insert into easy values('$_POST[username]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);}?>

给我留言

用 户:
标 题:
<?php $SQL="SELECT * FROM easy order by posttime desc "; $query=mysql_query($SQL); while($row=mysql_fetch_array($query)){?> <?php }?>
标题:<?=$row[title]?> 用户:<?=$row[username]?> <?= $row[posttime]?>
内容:<?= ($row[content])?>

这个你必须明白一个原理:如果浏览器没有进行跳转,那么你之前的提交动作会被保留,如果这时候你刷新,就会再次出发这个提交动作,虽然不是你点击提交的,但实际上也相当于你提交了

多以提交完以后,你要进行跳转或者其他方式取消掉提交的动作,不要让浏览器保留该动作

<?phpinclude('conn.php'); if($_POST['username']){ $sql = "insert into easy values('$_POST[username]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);  //意思就是在这之后做一个跳转处理或者其他去掉提交动作处理,比如echo ''}?>

这个你必须明白一个原理:如果浏览器没有进行跳转,那么你之前的提交动作会被保留,如果这时候你刷新,就会再次出发这个提交动作,虽然不是你点击提交的,但实际上也相当于你提交了

多以提交完以后,你要进行跳转或者其他方式取消掉提交的动作,不要让浏览器保留该动作
+1
提交成功后,跳转一下页面就可以了

if($_POST['username']){ $sql = "insert into easy values('$_POST[username]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);echo echo ""; }

多个打了个echo