php+没有post,php 刷新后 并没有POST 却输出数据

php post 刷新

我的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 “不能锁定文件

“;

}

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.”

“;

}

}

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);

}

?>

用户名:

标 题:

请在这里留言…

主界面如下:

添加了一条数据以后:

之后我不点击留言,直接按F5刷新,并没有POST,却在刷新后出现了相同的数据。如下图:

真的不明白啊,求解答啊……

回复讨论(解决方案)

if (file_exists($file_name))

{

read_message($file_name);

}

只要 $file_name 指向的文件存在就输出

并没有其他方式控制不输出

可在读的同时,却向 text_date.txt文件中写数据。当你留言后,不点留言按钮,就是每刷新一次,就会向文件中写入刚才你留言的数据,然后再输出。

表单提交后用header做一个重定向比较好。

刷新表单返回页相当于重新提交!

你用的是什么浏览器?刷新表单返回页都没有提示的吗?

用的是google浏览器,

下面是我的一个小测试,提交之后,刷新就不会出现先前的情况。

网络留言板

//error_reporting(E_ALL & ~E_NOTICE);

function write_message($message)

{

echo $message;

}

//判断用户是否提交按钮

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($message);

}

?>

用户名:

标 题:

请在这里留言…

你这2段代码 提交后再刷新页面,都是会重复提交的!!

只不过第2段代码你没有将数据写入文件,所以你看到的都是第1次提交的数据!!

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

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

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

太感谢你们了,我明白了……真心谢谢大伙……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值