<? php session_start (); /* * * 检查表单是否被重复提交 * 相同内容的表单在设定时间内只能提交1次 * @param int $iTimeOffset * @return bool */ function checkFormSubmit( $iTimeOffset = 60 ){ // 取得表单的标识 $idForm = md5 ( serialize ( $_POST )); // 是否需要表单提交检察 $iFormCheck = true ; if ( isset ( $_SESSION [ ' formSubmitCheck ' ])){ // 删除过期的表单标识 foreach ( array_keys ( $_SESSION [ ' formSubmitCheck ' ]) as $val ){ if ( time () > $val ){ unset ( $_SESSION [ ' formSubmitCheck ' ][ $val ]); } } } else { $_SESSION [ ' formSubmitCheck ' ] = array (); $iFormCheck = false ; } if ( $iFormCheck == true ){ // 检查是否有重复标识的提交记录 foreach ( $_SESSION [ ' formSubmitCheck ' ] as $val ){ if ( $val == $idForm ){ return false ; } } } // 保存表单标识 $_SESSION [ ' formSubmitCheck ' ][( time () + $iTimeOffset )] = $idForm ; return true ;} if ( count ( $_POST ) > 0 ){ if (checkFormSubmit() === true ){ echo ' 表单提交成功 ' ; } else { echo ' 表单重复提交 ' ; }} ?> < form method = " POST " > < input type = " text " name = " a " > < input type = " text " name = " b " > < textarea name = " c " ></ textarea > < input type = " submit " name = " btnSubmit " value = " 确认 " > </ form > <? php var_dump ( $_POST ); var_dump ( $_SESSION ); ?>