PHP防止用户重复提交表单

前端之家收集整理的这篇文章主要介绍了PHP防止用户重复提交表单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

< ?PHP
/*  * PHP简单利用token防止表单重复提交  */
session_start();
header("Content-Type: text/html;charset=utf-8");
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['web'])){  
    if(!valid_token()){  
        echo "token error,请不要重复提交!";  
    }else{  
    echo '成功提交,Value:'.$_POST['web'];  
    } 
}else{ 
?>  
    <form method="post" action="">  
    <input type="hidden" name="token" value="<?PHP echo $_SESSION['token']?>">  
    <input type="text" class="input" name="web" value="www.jb51.net">  
    <input type="submit" class="btn" value="提交" />  
    </form> 
<?PHP 
} 
?>  

以上是一个简单的防止重复提交表单的例子。
那么实际项目开发中,会对表单token做更复杂的处理,即我们说的令牌验证。可能要做的处理 有:验证来源域,即来路,是否为外部提交;匹配要执行的动作,是添加修改or删除;其次最重要的是构建token,token可以采用可逆的加密算法, 尽可能复杂,因为明文还是不安全的。

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

猜你在找的PHP相关文章