写入日志
PHP调式bug
手机网页前端开发者调试面板 vConsole
<?php function xl_bug_log_text($content){ $file = 'xllog/'.date('Y-m-d').'.txt';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个 $content .= $content."\r\n"; if($f = file_put_contents($file, $content,FILE_APPEND)){ // 这个函数支持版本(PHP 5) //echo "写入成功。<br />"; //return true; } return $f; } xl_bug_log_text('iswtf');
Run code
Cut to clipboard

    微信小程序 MD5
    md5.js
    使用
    var utilMd5 = require('../../utils/md5.js'); var password = utilMd5.hexMD5(password);
    Run code
    Cut to clipboard


      构造令牌token
      1.使用本地时间 注意时区差

      //构造令牌 // 在需要使用的js文件中,导入js //var util = require('../../utils/util.js'); var ttken ='JLI5vvqq0KRnzfla';//密钥 var ttime = parseInt(Date.parse(new Date())/1000);//时间 秒 //var ttime = util.ntime(); var ntoken=ttken+ttime; var token = utilMd5.hexMD5(ntoken); console.log(token); //end
      Run code
      Cut to clipboard

        2.使用服务器时间戳
        小程序不支持wx.request同步请求
        小程序为了用户体验,所有的request均为异步请求,不会阻塞程序运行
        所以当你需要同步请求,锁死操作时,最好将所有的逻辑写在success:function(){}里面
        //构造令牌 使用服务器时间戳 var util = require('../../utils/util.js'); util.ntime(utilMd5);
        Run code
        Cut to clipboard


          util.js
          const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } //服务器时间戳 function ntime(utilMd5){ wx.request({ url: 'https://lizhenqiu.com/ntime.php',//请修改为你服务器 data: { }, header: { 'content-type': 'application/json' }, success: function (res) { //return res; var ttken = 'JLI5vvqq0KRnzfla';//密钥 //var ttime = parseInt(Date.parse(new Date()) / 1000);//时间 秒 var ttime = res;//util.ntime(); var ntoken = ttken + ttime; var token = utilMd5.hexMD5(ntoken); console.log(token); //return token; } }) } //构造令牌 // 在需要使用的js文件中,导入js //var util = require('../../utils/util.js'); /*var ttken ='JLI5vvqq0KRnzfla';//密钥 var ttime = parseInt(Date.parse(new Date())/1000);//时间 秒 //var ttime = util.ntime(); var ntoken=ttken+ttime; var token = utilMd5.hexMD5(ntoken); console.log(token);*/ //end module.exports = { formatTime: formatTime, ntime: ntime }
          Run code
          Cut to clipboard


            ntime.php
            <?PHP header("Content-type: text/html; charset=utf-8"); echo json_encode(time());
            Run code
            Cut to clipboard

              服务器解密验证令牌
              <?php header("Content-type: text/html; charset=utf-8"); /*d s*/ error_reporting(E_ALL); //E_ALL function cache_shutdown_error() { $_error = error_get_last(); if ($_error && in_array($_error['type'], array(1, 4, 16, 64, 256, 4096, E_ALL))) { echo '<font color=red>你的代码出错了:</font></br>'; echo '致命错误:' . $_error['message'] . '</br>'; echo '文件:' . $_error['file'] . '</br>'; echo '在第' . $_error['line'] . '行</br>'; } } register_shutdown_function("cache_shutdown_error"); function dump($vars){ echo '
              ';
              	print_r($vars);
              	echo '
              '; } /*d e*/ //返回服务器时间戳 function ntime(){ return time(); } //令牌验证 $t 时间 +- 范围 分 function xl_c_n_token($token,$t,$key){ $nt=ntime(); $t=($t+0)*60;//分化秒 $io=$nt-$t; $it=$nt+$t; for($i=$io;$i<$it;$i++){ $tokenlist[]=md5($key.$i);//所有时间误差返回内的token令牌 } $iin=in_array($token,$tokenlist); return $iin; } $ctoken=xl_c_n_token('80527e16009444c5d554d76134bf2471',5,'JLI5vvqq0KRnzfla'); //dump(xl_c_n_token('80527e16009444c5d554d76134bf2471',5,'JLI5vvqq0KRnzfla')); function xl_bug_log_text($content){ $file = 'xllog/'.date('Y-m-d').'.txt';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个 $content .= $content."\r\n"; if($f = file_put_contents($file, $content,FILE_APPEND)){ // 这个函数支持版本(PHP 5) //echo "写入成功。<br />"; return true; } return $f; } //xl_bug_log_text('iswtf'); //echo md5('password');
              Run code
              Cut to clipboard