这段php代码如何更改?
伊谢尔伦
伊谢尔伦 2017-04-10 16:35:57
[PHP讨论组]

我想生成一个token显示出来,页面刷新一次改变一次,下面的代码该怎样修改?

<?php
session_start();
function set_token() {
  $_SESSION['token'] = md5(microtime(true));
}

function valid_token() {
  $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;
  set_token();
  return $return;
}

if(!isset($_SESSION['token']) || $_SESSION['token']=='') {
  set_token();
}
echo $_SESSION['token']
unset($_SESSION['token']);
?>
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
PHP中文网

难道你这个页面刷新一次就不能更改一次吗?
如果是我,以下代码是这样子的

session_start();
function set_token() {
    $key = mt_rand(100000,900000);
    $token = md5(md5(time()).$key);
    $_SESSION['token'] = $token;
    return $token;
}
function get_token() {
    if(!isset($_SESSION['token']) || empty($_SESSION['token'])) {
        return false;
    }
    return $_SESSION['token'];
}
function unset_token() {
    unset($_SESSION['token']);
}
function valid_token($token) {
    if($token !== $_SESSION['token']) {
        return false;
    }
    return true;
}
$token = $_REQUEST['token']; //客户端提交过来的token
if(get_token() === false) {
    $token = set_token();
    echo '验证失败!';
    echo '生成的token:'.$token;
} else {
    if(valid_token($token)) {
        echo '验证成功!';
        unset_token(); // 删除token
        $token = set_token();
        echo '生成的新token:'.$token;
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号