打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP防止post重复提交数据的简单例子

在某帝国面试的时候问题了这个题: 怎么处理post提交重复的问题, 后来跟@暖阳交流,他说记录时间,我没有明白,我想的是用session在表单页面记录下,然后提交页面判断,如果相等则视为成功,并清空session,但有个问题是如果表单页面是html的呢,乍办?

undefined

要不调个php验证的页面?类似验证码的功能. 还有的说用 header头设置过期时间...但没试.以下是我php写的,经测试可用.


<?php
//开启session
session_start();

//如果有提交标识
if(isset($_GET['action']) && $_GET['action'] === 'save'){

 //如果有session且跟传过来的值一样才算提交
 if(isset($_SESSION['__open_auth']) && isset($_POST['auth']) && $_SESSION['__open_auth'] == $_POST['auth']){
  print_r($_POST);
  $_SESSION['__open_auth'] = null;//清空
 } else {

  //走起
  header('location: post.php');
 }
 exit();
}

//授权
$auth = $_SESSION['__open_auth'] = time();

?>
<!doctype html>
<html>
<head>
 <meta charset='UTF-8'>
 <title>post</title>
</head>
<body>
 <form action='post.php?action=save' method='post'>
  <ul>
   <li>
    <input type='hidden' name='auth' value='<?php echo $auth;?>'>
    <input type='text' name='userName'>
   </li>
   <li>
    <input type='password' name='userpass'>
   </li>
   <li>
    <input type='submit' value='走起'>
   </li>
   <li>
    <?php echo time(); ?>
   </li>
  </ul>
 </form>
</body>
</html>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
防止恶意刷新,重复提交表单
PHP表单重复提交
浅谈CSRF攻击方式
register
php编写用户登陆和登出代码_望海天空
十天学会PHP/第八天:Sessions、发送电子邮件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服