您的位置:首页 > 编程语言 > PHP开发

PHP防止页面刷新与重载

2015-12-11 01:14 537 查看


如图,因为omniGraffle暂时不会玩,所以手绘了一张图。

建立了3个文件,第一个文件askq.php为表单,第二个文件qsubmit.php接收第一个文件发过来的数据并将其写入数据库,第三个文件将数据库中的数据打印出来。

那么问题来了,怎么防止用户刷新页面重复提交数据?以及怎么防止用户重载页面,写入无效数据。

刷新好理解,也就是数据库中同样的记录出现了多条,那么重载是怎么回事呢?也就是在地址栏按下了回车

这个时候数据库会出现下面这种情况



原因是页面重载的时候,detail这些字段没有数据从askq.php穿过来,字段为空。

怎么判定页面重载呢?

1. 最简单的方法就是直接判定这些字段是否为空,如果为空则不执行插入的操作

2. 复杂一些的方法

在askq.php的上面插入如下

<?php
session_start();
//根据当前SESSION生成随机数
$code = mt_rand(0,1000000);
$_SESSION['code'] = $code;
?>
在表单中加一条

<input type="hidden" name="hidden" id="hidden" value="<?php echo $_SESSION['code']?>">


在qsubmit.php中插入

session_start();
$hide     = $_POST['code'];
if($hide==$_SESSION['code'])
{
//数据库插入操作
}else
{
//提示用户勿重复提交
}<span style="white-space:pre">																</span><p class="p1"><span class="s1">      session_destroy();</span></p>


解析:当第一提交的时候 $hide == $session['code']

当刷新页面的时候 $session['code']已经不存在了,自然是返回false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: