php F5 刷新问题

2024-12-26 12:24:17
推荐回答(2个)
回答1:

用session禁用了刷新就ok了。但是具体忘了。给你一段代码做参考/**
* 防止刷新模块
* 实现原理 设置 max_reloadtime =100; //设置页面刷新最长间隔时间
* 用户第一次打开页面 记录当前的时间保存在 session_start
* 用户第二次打开页面(判断 session_start是否存在) 用当前时间和 session_start 相减 得到差值 time_passed
* 当 time_passed < max_reloadtime 表示用户在指定时间内频繁刷新了 警告后直接退出
* @param int $max_reloadtime 页面刷新最长间隔时间
* @return bool 返回 具体数值 表示刷新太快了 返回 false 表示没有超时
*/

if (!function_exists('controller_onload'))
{
function limitReload($max_reloadtime=2)
{
session_start();
if(empty($_SESSION["session_start"])) //用户第一次打开页面 记录当前的时间保存在 session_start
$_SESSION["session_start"] =time();
else
{
$time_passed =time()-$_SESSION["session_start"];
if($time_passed < $max_reloadtime)
{
return $time_passed;
// echo "大侠别急,先坐下休息休息 :P 按此刷新页面
";
// echo "页面刷新间隔时间 ".$max_reloadtime."
";
// echo "离上次刷新时间 ".$time_passed."
";
// die();
}
$_SESSION["session_start"] =time();
}
return false;
}
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gggxin/archive/2006/07/04/876626.aspx

回答2:

一、防止刷新的办法是用AJAX异步,或者IFRAME,这里说一下IFRAME的方法,你的页面如下结构:


...



二、你应该有防止重复插入数据库的措施,比如论坛里面相同的帖子,注册用户里面相同的用户,即使客户老老实实输入两次,而不是实用F5刷新,程序一样不应该允许保存,方法是在你以前的insert数据库之前,先"select count(*) where 内容匹配"检查是否重复,有重复的就提示,不保存到数据库。