利用Seeion快速解决重复提交的问题
表单部分添加:
<input id="formtoken" type="hidden" value="<?php echo createFormToken();?>">
提交的地方添加:
if(!checkFormToken($formtoken)){ exit("请勿重复操作"); }
公共文件中添加以下三个函数供以上两个地方引用:
//给表单创建TOKEN,防止重复提交 function createFormToken() { $code = chr(mt_rand(0xB0, 0xF7)).chr(mt_rand(0xA1, 0xFE)).chr(mt_rand(0xB0, 0xF7)).chr(mt_rand(0xA1, 0xFE)).chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE)); $formtoken = authformcode($code); $_SESSION['FORMTOKEN'] = $formtoken; return $formtoken; } //判断TOKEN,防止重复提交 function checkFormToken($token) { if ($token == $_SESSION['FORMTOKEN']) { $_SESSION['FORMTOKEN'] = NULL; return TRUE; } else { return FALSE; } } /* 加密TOKEN */ function authformcode($str) { $key = "mofang"; $str = substr(md5($str), 8, 10); return md5($key . $str); }