三、php防止表单重复提交的办法

In ThinkPHP5:

Step 1.

Add follow 3 functions in your BaseController:

//Create TOKEN
public function creatToken() {
    $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));
    session('TOKEN', $this->authcode($code));
}

//Judge TOKEN
public function checkToken($token) {
    if ($token == session('TOKEN')) {
        session('TOKEN', NULL);
        return TRUE;
    } else {
        return FALSE;
    }
}

/* Encrypt TOKEN */
public function authcode($str) {
    $key = "ANDIAMON";
    $str = substr(md5($str), 8, 10);
    return md5($key . $str);
}
**创建token**
**32个字符**

Step 2. Set hidden field in your form :

<input type="text" name="TOKEN" value="{:session('TOKEN')}">

Step 3. Judge the token if exists:


<blockquote>来源:https://my.oschina.net/caomenglong/blog/728908</blockquote>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容