首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php 刷新后 并没有POST 却输出数据解决办法

2013-12-13 
php刷新后 并没有POST 却输出数据我的php代码如下:htmlheadmeta http-equivContent-Type content

php 刷新后 并没有POST 却输出数据
我的php代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <title>网络留言板</title>
</head>
<body>
        <?php
                //error_reporting(E_ALL & ~E_NOTICE);
        function write_message($file_name, $message)
        {
                $fp = fopen($file_name, "a");  //以追加模式打开文件
                if(flock($fp, LOCK_EX))
                {
                        fwrite($fp, $message);
                        flock($fp, LOCK_UN);
                }
                else
                {
                        echo "不能锁定文件<br>";
                }
                fclose($fp);   //关闭文件资源
        }

//自定义一个遍历读取文件的函数
        function read_message($file_name)
        {
                $fp = fopen($file_name, "r");  //以只读模式打开文件
                flock($fp, LOCK_SH);
                $buffer = "";

                while(!feof($fp))
                {
                        $buffer .= fread($fp, 1024);
                }

                $data = explode("<|>", $buffer);
                unset($data[count($data)-1]);
                foreach($data as $line)
                {
                        $arr = explode("||", $line);
                        list($user_name, $title, $message) = $arr;
                        if($user_name != "" && $title != "" && $message != "")
                        {
                                echo $user_name.'说   ';
                                echo "     ".$title.'    ';
                                echo $message."<hr />";
                        }
                }

                flock($fp, LOCK_UN);
                fclose($fp);
        }
                


//声明一个变量保存文件,在这个文件中保存留言信息
        $file_name = "text_date.txt";
        //判断用户是否提交按钮
        if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['user_name']) && !empty($_POST['title']) && !empty($_POST['mess']))
        {
                $message = $_POST['user_name']."||".$_POST['title']."||".$_POST['mess']."<|>";
                write_message($file_name, $message);
        }

        if (file_exists($file_name))
        {
                read_message($file_name);
        }        
?>        
        <!--以下是用户输入表单-->
        <form action="" method="POST">
                用户名:<input type="text" size="10" name="user_name"><br>
                标&nbsp;&nbsp;题:<input type="text" size="30" name="title"><br>
                <textarea name="mess" rows="5" cols="40">请在这里留言...</textarea><br>
                <input type="submit" name="sub" value="留言">
        </form>        
</body>
</html>
主界面如下:
php  刷新后 并没有POST 却输出数据解决办法
添加了一条数据以后:
 php  刷新后 并没有POST 却输出数据解决办法
之后我不点击留言,直接按F5刷新,并没有POST,却在刷新后出现了相同的数据。如下图:
 php  刷新后 并没有POST 却输出数据解决办法
真的不明白啊,求解答啊……
php?post?刷新
[解决办法]
       if (file_exists($file_name))
        {
                read_message($file_name);
        }        
只要 $file_name 指向的文件存在就输出
并没有其他方式控制不输出
[解决办法]
表单提交后用header做一个重定向比较好。
[解决办法]
刷新表单返回页相当于重新提交!
你用的是什么浏览器?刷新表单返回页都没有提示的吗?

[解决办法]
你这2段代码 提交后再刷新页面,都是会重复提交的!!
只不过第2段代码你没有将数据写入文件,所以你看到的都是第1次提交的数据!!

获取数据后可以跳转一下!


function write_message($message)
{
echo $message;
echo "<script>location.href='';</script>";
exit;
}

[解决办法]
提交后做个跳转吧,没做跳转,一直停留在提交后那里,只要你刷新,数据就会重复提交。

热点排行