php 防止页面刷新重复提交

来源:互联网 发布:取名字的软件 编辑:程序博客网 时间:2024/05/13 12:45

一.使用session防止重复提交 

其实跟验证码一样的原理,主要是生成session和input隐藏域,

这边我的代码是在一个页面中处理。

<?phpheader('Content-type:text/html; charset=utf-8'); //页面编码session_start();  //开启sessionif(isset($_POST['submit'])){ //判断是否是表单提交if($_SESSION['code'] != $_POST['code']){ //令牌判断die('重复提交');}$_SESSION['code'] = '';//-------------这边用于处理代码-die('跳转');}else{  //不是表单提交就生成code代码$res = md5(uniqid( rand(),false));$_SESSION['code'] = $res;}?><!DOCTYPE html><html><head><meta charset="utf-8" /><title>重复提交</title></head><body><form method="post" action="submit.php"><input type="text" name="user" /><input type="hidden" name="code" value="<?php echo $_SESSION['code']; ?>" /><input type="submit" name="submit" /></form></body></html>

2.下面代码是网上的

<?php  /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */  header('Content-type:text/html; charset=utf-8');session_start();  function set_token() {      $_SESSION['token'] = md5(microtime(true));  }    function valid_token() {      $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;      set_token();      return $return;  }    //如果token为空则生成一个token  if(!isset($_SESSION['token']) || $_SESSION['token']=='') {      set_token();  }    if(isset($_POST['test'])){      if(!valid_token()){          echo "token error";      }else{          echo '成功提交,Value:'.$_POST['test'];      }  }  ?>  <form method="post" action="">      <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>">      <input type="text" name="test" value="Default">      <input type="submit" value="提交" />  </form> 




0 0
原创粉丝点击