你刷新了,能不向数据库内再insert一条记录吗?
你insert成功后,你跳转到其他页面就行了。

解决方案 »

  1.   

    我用跳转header("location:***.htm")
    结果出现错误!
      

  2.   

    检测数据源是不是你的提交页面,如果确实是的话,再入库,否则就做其他处理不就行了?
    用这个变量来判断怎么样?if (isset($_ENV["HTTP_REFERER"])&&($_ENV["HTTP_REFERER"]=="page1.php")){
        echo "<p>数据来自<a href=".$_ENV["HTTP_REFERER"].">";
        echo $_ENV["HTTP_REFERER"];
        echo "</a>";
        ...加入数据库的操作代码...
    }else{
        echo "<script language=javascript>\n";
        echo "alert(\"请到这个页面提交数据\");\n";
        echo "location=\"page1.php\";\n";
        echo "</script>";
    }; 
      

  3.   

    出現什麽錯誤呀?
    是不是你前面有輸出呀,比如echo,printf等或者空行等
      

  4.   

    sandj我照你的方法做了,结果所有的输入都变成不合法的了,我也不知道怎么回事!
      

  5.   

    提交页面中,生成一个随机session, 把这个值赋给一个变量例如$check
    提交的时候,把这个变量$check也一起提交执行插入的页面,先检验输入的$check和session中的那个变量是否匹配,
    如匹配,先把session值变掉,再向数据库里添加。
    如不匹配,就不管了。
      

  6.   

    提交成功之后重定向一下就可以了
    没必要搞得这么复杂的。重定向失败,说明你的header语句之前有输出
      

  7.   

    看看VBB原码,他的做法是截取一段时间,如果在此时间内发现用户提交的数据和数据库的一致,则不会进行数据库插入操作。。以下是一个小小的例子:我以前在写 PHP 程序时,经常碰到页面刷新时,数据库多处理一次的情况。
    我们来看 addcust.php:<?php
    $query = "INSERT INTO customer
    SET surname = $surname,
    firstname = $firstname";
    $connection = mysql_connect("localhost", "fred", "shhh");
    mysql_select_db("winestore", $connection);
    $result = mysql_query($query, $connection);
    ?>
    <!DOCTYPE HTML PUBLIC
    "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd" >
    <html>
    <head>
    <title>Customer insert</title>
    </head>
    <body>
    I've inserted the customer for you.
    </body>
    </html>
    ?>
    假设我们用下面的连接使用这个程序:http://www.freelamp.com/addcust.php?surname=Smith&firstname=Fred如果这个请求只提交一次,OK ,不会有问题,但是如果多次刷新,你就会有多条记录插入。
    这个问题可以通过 header() 函数解决:下面是新版本的 addcust.php:<?php
    $query = "INSERT INTO customer
    SET surname = $surname,
    firstname = $firstname";
    $connection = mysql_connect("localhost", "fred", "shhh");
    mysql_select_db("winestore", $connection);
    $result = mysql_query($query, $connection);
    header("Location: cust_receipt.php");
    ?>
    这个脚本把浏览器重定向到一个新的页面:cust_receipt.php:<!DOCTYPE HTML PUBLIC
    "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd" >
    <html>
    <head>
    <title>Customer insert</title>
    </head>
    <body>
    I've inserted the customer for you.
    </body>
    </html>
    这样,原来的页面继续刷新也没有副作用了。
      

  8.   

    我用跳转header("location:***.htm")
    结果出现错误!
            ~~~~~~是什么错误?不能说一下吗?
      

  9.   

    所有的数据都不合法?怎么会啊?
    是怎么做的?
    一个PAGE1的页面包含一个FORM
    提交到PAGE2的页面,上面的代码是PAGE2的内容
    哦,对了,在开始那个判断的句子里面应该是包含HTTP://
    的全路径啊!,你先用正确的看看对比下了!
    有一个系统所自动提取的变量啊,
    我测试除INDEX.PHP这样的可能会没有取出文件名外其他都是正常的
      

  10.   

    你可以这样呀,你提交上来以后在一个中转页面a.php中执行insert操作,完毕后马上就跳转到显示结果的页面不就行了
      

  11.   

    用header吗?
    结果我用header("location:***.php");
    提示好象是什么have send by....
      

  12.   

    解决方法:
    1:在插入表单中增加:
    <?
    $myurl=getenv("HTTP_REFERER");//插入与显示不同页
    //$myurl=$REDIRECT_URL;       //插入与显示同页
    ?>
    <input type=hidden name=myurl value=<?echo $myurl?>>
    2:处理页面
    echo "<br><center><a href=$myurl>插入成功</a></center><br>";
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=$myurl'>";
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=javascript:location.reload()'>";
    exit;
    呵呵试试效果,
      

  13.   

    补充说明:
    //重定向到原来的显示页面
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=$myurl'>";
    //刷新显示页面
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=javascript:location.reload()'>";
    //这里才结束处理页面的运行
    exit;
      

  14.   

    对不起 wsrboy(wsrboy)我没有看懂,你能不能说的详细一些?
    我的send.php中是:
    左边是新闻标题,右边是delete.如果点击新闻标题则表示修改,点击delete 删除。
    delete.php
    中是处理delete的,我想delete处理完后,我用了个
     echo "location=\"send.php\";\n";定位到send.php;结果我已经删除的那条记录还在,需要手动刷新才能去掉,请问我应该怎么做?
      

  15.   

    看了一下,好象是由于你向页面中输出了什么东西了。
    在header之前不能有任何信息输出,哪怕是一个空格!!!
      

  16.   

    我的send.php中是:
    左边是新闻标题,右边是delete.如果点击新闻标题则表示修改,点击delete 删除。
    delete.php
    中是处理delete的,我想delete处理完后,我用了个
     echo "location=\"send.php\";\n";定位到send.php;结果我已经删除的那条记录还在,需要手动刷新才能去掉,请问我应该怎么做?
      

  17.   

    说明你没有刷新呀,我没用过你的语句,
    你让它自动刷新一次不就OK了吗
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=javascript:location.reload()'>";