用if($_SERVER['REQUEST_METHOD']=="POST")判断是不是递交的,是则执行插入
插入完用 header("Location: " . $_SERVER['SCRIPT_NAME']); 转到自己,此时不是POST,就不会插入了.

解决方案 »

  1.   

    在表单中添加<input type="hidden" name="formaction" value="ActionName" />
    然后if( $_POST['formaction'] == 'ActionName' )
    {
       #执行数据库操作
    }
      

  2.   

    //if(!isset($_POST[wattatch]))也因为提交的原因,这句话也不好用.应该能用的,就是没有POST的话,如何处理
      

  3.   

    呵呵,这个问题其实是逻辑问题,解决方法有两个:
    1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
    2: 在数据库添加时判断该数据存在与否。
      

  4.   

    呵呵,这个问题其实是逻辑问题,解决方法有两个:
    1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
    2: 在数据库添加时判断该数据存在与否。
      

  5.   

    呵呵,这个问题其实是逻辑问题,解决方法有两个:
    1: 在添加之后跳转回原页面:header("LOCATION:XXXXX");
    2: 在数据库添加时判断该数据存在与否。
      

  6.   

    成功插入后跳转回来,这是刚学php时经常遇到的问题。
      

  7.   

    很经典的问题 重复提交可以给表单一个类似验证码的字符串 同时把这个字符串写道SESSION中 
    在接收表单后比对验证码和SESSION是否一致 一致认为有效提交并改写SESSION中验证码字符串
      

  8.   

    介绍一个不错的函数,我再开发时常用.
    extract($_POST);这样就相当于打开了register_globals=on.当我保存数据时,数据库中的ID会自动加1保存,,保存后如果我按浏览器的刷新按钮,他就会不继续我的保存功能,使ID不断加一,保存到数据库中,对这咱问题我该如果解决. 
    你可以设置一个cookie ,再限制提交时间. 挡在执行sql 前面验证一道,如果是短期内刷新,则另外处理掉.
      

  9.   

    谢谢楼上各位,
    一楼的方法我还没试,有点难度,我找个时间慢慢来搞,三楼的你的方法,我试了一下,好像不行,刷新时还自动加1。四楼的你提跳转,我试了一下,不会用,我改天花功夫研究一下,你的第二种方法,我不知是不是我没看懂,因为我做的是自动加1,所以是数据库中肯定是没数据的。12楼的我觉得你那个cookie是个偷懒的方法,不足取,要是有人加了一记录,走开一会儿,再跑来刷新一下,怎么办。你下面的那条见意非常好。说句丢人的话,我到今天业务和逻辑都没完全搞明白。我会努力学习的。如果那位有空能帮我用看一下那个跳转语句应该加那儿,怎么加。(不好意思,偷懒了)
      

  10.   

    各位有空请帮我去看看这个问题。是js 方面的,父子两窗口参数传来传去的问题。就是父窗口传到子窗口,由子窗口提交到后台去处理,也就是php处理,然后把处理结果传回来,其中,子页面是隐藏的,不能对他进行操作。http://topic.csdn.net/u/20080329/15/cb84559c-2e73-4b99-b68a-cba82bb5b0f1.html
      

  11.   

    $stmt->finish(); 
    这句后面加:
    echo '<script>Location.href=\"test.php\"</script>';
      

  12.   

    楼上的那个没用,我加了他还是加1保存。
    echo ("<script language='javascript'> Location.href='wu_test.php'; </script>");
      

  13.   

    貌似是小写的l........
    echo "<script>location.href=\"index.php\";</script>";
      

  14.   

    多谢各位,确实只要多加一句header ( 'location: ./wu_test.php');或楼主给的echo (" <script language='javascript'> location.href='wu_test.php';  </script>");但又来一个问题,我加了一条记录后,还要显示。我加了那句话后,直接跳转到最开始没数据的页面了。也就是没有我刚加的数据的那条记录显示在页面上。
      

  15.   

    说白了就是判断POST是不是空的,在处理完以后跳转一下页面就可以了。
      

  16.   

    表单不仅仅是客户端表现问题 安全性上也要防止表单重复提交a.php
    <?php
    $data = microtime(true);
    $_SESSION['input'] = $data;
    ?>
    <from action="b.php" method="post">
    <input type="text" name="name"/>
    <input type="hidden" name="input" value="<?php echo $data;?>" />
    </from>b.php
    <?php
    if($_POST['input'] != $_SESSION['input']){
    echo '非法提交'; //这里应该是你的异常处理方式
    exit();
    }
    ... ...
    ?>
      

  17.   

    忘了最重要的东西了b.php 
    <?php 
    if($_POST['input'] != $_SESSION['input']){ 
    echo '非法提交'; //这里应该是你的异常处理方式 
    exit(); 
    }
    $_SESSION['input'] = '';
    ... ... 
    ?>