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
相关文章推荐
- PHP异常处理Exception类
- 基于PHP如何把汉字转化为拼音
- PHP开发中AJAX技术的简单应用
- 搭建Vim为自定义的PHP开发工具的一些技巧
- 使用PHP+AJAX让WordPress动态加载文章的教程
- PHP 7终于发布:开发者会选择PHP 7吗?
- php开发工具 zend studio 12.5.1 中文版汉化
- 奇光影业招聘PHP工程师
- YII中的$this->createUrl()参数前面斜杠使用说明
- A key of the PhpStrom
- Notpad++快捷键(常用更新)
- 生成树协议(STP)
- Laravel 安装搭建
- [Laravel学习笔记] 安装Laravel
- php文件上传
- PHP.INI常用设置一览表(持续更新)
- FTP文件传输服务
- FTP文件传输服务
- PHP.INI常用设置一览表(持续更新)
- session与cookie的区别