避免刷新页面时重复提交表单数据
2016-07-30 15:05
591 查看
一般通过session、cookie,有些情况可以通过设置数据表的主键/唯一键来达到目的。
1、session 方式:
<?php session_start(); $_SESSION['sess_token'] = sha1(mt_rand()); ?> <html> <body> <form action="submit.php" method="post"> <input type="hidden" name="sess_token" value="<?php echo $_SESSION['sess_token']; ?>" /> <input type="text" name="user" value="username" /><br /> <input type="submit" name="sub" value='submit' /> </form> </body> </html>
<?php // session_start() 会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。 session_start(); if( ! empty($_POST['sub']) ) { if ( ! empty($_SESSION['sess_token']) && ($_SESSION['sess_token']==$_POST['sess_token']) ) { echo '<br />', 'found!'; // do something ... $_SESSION['sess_token'] = null; session_destroy(); } else { echo '<br />', 'Second-Time Submit!'; } } ?>
2、cookie方式:
<?php $store_token = $token = sha1(mt_rand()); setcookie('token', $token, time()+3600, '/'); ?> <html> <body> <form action="submit.php" method="post"> <input type="hidden" name="token" value='<?php echo $token;?>' /> <input type="text" name="user" value="username" /><br /> <input type="submit" name="sub" value='submit' /> </form> </body> </html>
<?php if(!empty($_POST['sub'])) { if (!empty($_COOKIE['token']) && $_COOKIE['token']==$_POST['token']) { echo '<br />', 'found!'; // do something ... setcookie('token', null, -1); } else { echo '<br />', 'Second-Time Submit!'; } } ?>
相关文章推荐
- Angularjs 跨域请求
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- 杰奇登录后的东西都是在session里面的
- 在线用表单建立文件夹
- cookie的secure属性详解
- 浏览器 cookie 限制
- Jquery 表单取值赋值的一些基本操作
- ASP中SESSION无法保存问题的解决办法
- Oracle中的Connect/session和process的区别及关系介绍
- javascript 表单的友好用户体现
- Node.js编程中客户端Session的使用详解
- js 提交和设置表单的值
- android读写cookie的方法示例
- 完美解决ajax访问遇到Session失效的问题
- 浅谈COOKIE和SESSION区别
- 解析PHP的session过期设置
- php中Session的生成机制、回收机制和存储机制探究
- 通过nginx配置修改网页cookie属性
- 追加Cookie的Netsclaer策略