微信公众号:该公众号提供的服务出现故障,请稍后再试解决思路  

在开发微信公众号的时候,一直提示该公众号提供的服务出现故障,请稍后再试. 官方文档上是说有两种情况会返回 1、开发者在5秒内未回复任何内容 2、开发者回复了异常数据,比如JSON数据等 情况1是网络延迟或者计算过多,请求接口超时等问题。 情况2也有好多种情况 1. 返回数据格式错误,如代码报错输出了错误信息,或者返回了json,或者直接就是字符串,非xml,或者xml格式中空格多了 2. 公众授权了消息相关权限,接收,被动回复等,在这种情况下,微信除了会向你的开发者服务器地址发送信息之外,还会向

Posted:2019-08-23  By vilayz

Yii2 性能优化  

使用Yii2开发产品的时候,在做性能优化中发现,在数据库中会发现很多查看表列的请求 SHOW FULL COLUMNS FROM `articles` 这个是使用AR模型,每次查询的时候都会获取表的列 解决方法,修改数据库连接配置 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=test', 'username' => 'root', 'password' =&

Posted:2019-08-07  By vilay

PHP Curl 保持会话连接  

PHP 请求接口的时候保持cookie 会话连接的方法 function curlRequest($url,$data,$headers=[]) { $cookie_file = '/tmp/cookie.txt'; $data = json_encode($data); $ch = curl_init(); $user_token = getAuthToken(); $headers = [ 'Content-Type:application/json;charset=utf-8', 'Con

Posted:2019-01-15  By vilay

PHP 获取指定周数的开始时间结束时间  

函数 function weekStartEnd($year,$week=1) { $w = date('W'); $diff = $w-$week; $weekday['start']=mktime(0,0,0,date('m'),date('d')-date('w')+1-$diff*7,date('Y')); $weekday['end']=mktime(23,59,59,date('m'),date('d')-date('w')+7-$diff*7,date('Y')); return

Posted:2019-01-07  By vilay

tp5 api接口数据响应正常,但是http 状态码500  

在请求一个api的接口的时候遇到一个奇葩问题,响应数据正常,但是状态码是500. 把服务器的报错什么的都修改为debug状态,没有任何错误显示 解决方法,给runtime重新赋予权限 chmod -R 777 runtime

Posted:2018-12-01  By vilay

Safari 浏览器提交表单,在a标签上绑定onclick 事件  

今天遇到个问题,在写一个表单提交的时候,按钮使用的是a标签,在a标签上绑定了事件 <a type="button" class="btn btn-caution" rel="_request" id="address_submit" style="cursor: pointer;" onclick="return submit()">确定</a> 在su

Posted:2018-09-08  By vilay

PHP $_POST,php://差异  

今天在使用postman测试接口的时候,遇到个问题,使用raw向接口发送json数据,但是后台获取不到数据 后台使用$_POST获取,获取不到数据。 之前一直使用$_POST,差点以为这万能了,后面查看了文档发现还是有差异的。 $_POST 当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。 php:// php:// php://i

Posted:2018-07-12  By vilay

一次服务器磁盘爆满的血案  

今天早上访问应用的时候,突然很多地方图片加载不到,登录之后session无法获取。 首先,我查看了下yii2 session相关的配置,都有配置正确 接着尝试写了两个方法,一个方法生成session,并获取到session,正常,另一个方法,获取上个方法生成的session,获取失败。 尝试了下重启服务器,还是无效,没能解决问题。 查看了下session的存储位置/var/lib/session权限是够的 然后看了下php的session相关配置,突然想到session的存储类型是files,有

Posted:2018-07-11  By vilay

PHP JWT 实践  

PHP JWT验证的实践 介绍 官网 JWT JSON Web Tokens JWT 格式 header.payload.signature header { "typ":"JWT", "alg":"SHA256" } payload 待补充 示例 <?php /** * api接口基类控制器 * @authors vilay */ namespace api\controllers; use Yii; use

Posted:2018-07-03  By vilay

PHP json_encode 空数组  

在对接口的时候,使用json数据进行数据传输,遇到一个问题 示例代码: $data = [ 'head' => [ 'token' => 'dfdfd', ], 'body' => [] ]; echo json_encode($data); 结果: {"head":{"token":"dfdfd"},"body":[]} body这个空数组还是经过编码之后还是[],这种格式在部分语言里面无法进行解

Posted:2018-06-28  By vilay

本博客开源  

本博客开源代码已扔github Github 后台基于Flask,Layui进行开发,刚学Flask代码写的不是很好,望多指正。 Python 版本3.6,其它的版本我没试过。 后台功能: 文章管理 分类管理 标签管理(未完成) 系统设置 友情链接 管理员管理 后台日子(未完成) 数据统计(未完成) 文章标签绑定(未完成) 前台:基本展示功能 未完成功能会继续完善,后续会增加权限验证模块。 这边主要说下部署问题 部署基于nginx,gunicorn 比如项目部署在/www目录 第一步:克隆代码

Posted:2018-06-24  By vilay

域名更换IP之后,让Chrome马上生效的办法  

在开发的Web的时候,我们常遇到个问题,由于系统的要求,有限定特定的域名,因为测试域名没有解析到公网,导致了我们在测试服务器测试与本地测试需要不断的去更改hosts,由于浏览器的机制问题,更换了hosts里面的IP后,Chrome访问的还是原来的IP,通过ping的方式,却发现IP已经是新的IP。我之前要么是关闭浏览器重启,或者更换别的浏览器进行测试,用这样的方式保持浏览器页面不被关闭,方便继续测试。 通过找资料发现这是由于Chrome 的Sockets的机制导致的。 Chrome提供的net-

Posted:2018-06-16  By vilay

Flask 学习笔记(三)-ORM  

简述 SQLAlchemy是个非常优秀的orm,flask可以根据自己的爱好使用orm,但是既然使用flask,首选当然是flask-sqlalchemy。 安装 pip3 install flask-sqlalchemy 初始化 from flask import Flask,render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_

Posted:2018-06-10  By vilay

Flask 学习笔记(四)- 静态文件  

Flask模版文件中引入静态文件的方法 1. 第一种方法 使用路径直接写死 <link rel="stylesheet" type="text/css" href="/static/css/style.css"> 2. 第二种方法 使用模版函数url_for() <script src="{{ url_for('static', filename='js/jquery-3.3.1.min.js') }}&qu

Posted:2018-06-10  By vilay

Flask 学习笔记(三)-模版  

Flask 的模版引擎使用的是Jinja2 Jinja2 示例代码(项目文件index.py): from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/') def index(): return 'hello vilay' @app.route('/user/<username>') def profile(username): return rend

Posted:2018-06-10  By vilay