上传文件报413 Request Entity Too Large错误解决办法(nginx服务器)

2019-11-12 liyangcoder PHP

修改nginx.conf的值就可以解决了

将以下代码粘贴到nginx.conf内

阅读全文>>

评论(0) 浏览(52)

http强转https导致post变get的问题

2019-7-13 liyangcoder PHP

https是大势所趋,现在主流网站都已支持https,但是用户并没有养成输入https的习惯,仍然是输入http,这时候就需要我们将用户的请求强行转成https,以保证用户的数据安全。

今天遇到这样一个问题,在我的一个https页面做登陆的时候,用post方法发送一个表单,但是不论如何和登陆不成功,经过一段时间调试,发现我页面中的表单提交地址是http的,我当然可以直接改提交地址,但是我觉得这应该不是一个完美的做法,于是参考了一下百度的做法。

1.png

百度这里用的并不是301/302,而是307,于是我也试了一下:

server {
	listen 80;
	server_name xxx.com;
	return 307 https://request_uri$request_uri; #关键
}
2.png


提交表单没问题了,大功告成。

评论(2) 浏览(850)

(支付宝)RSA密钥调试工具的一个坑

2019-6-27 liyangcoder PHP

最近在开发支付宝支付,在支付宝后台配置的时候,发现了一个问题,困扰了我半天,终于找到了问题,来记录一下.

支付宝开放平台后台需要我们填RSA公钥(由于我填过了,所以这里是修改),如下图:

深度截图_选择区域_20190627150706.png

深度截图_选择区域_20190627150854.png

下一步将我辛辛苦苦生成的公钥添加进去,贴心的支付宝还给我提供了一个"验证功能"避免我们在对接的时候由于公钥/私钥不对而导致的失败:

深度截图_选择区域_20190627151113.png

深度截图_选择区域_20190627151335.png

调试工具上面写着:"请将JSON串 {"a":"123"}使用填写公钥对应的私钥签名".

赶紧用我自己的签名方法签名试一下.

深度截图_选择区域_20190627151713.png深度截图_选择区域_20190627151729.png

嗯!很好,我的程序一如既往的让我满意.

于是我把这个签名粘贴到支付宝的调试工具里测试.

WHAT?失败了!

深度截图_选择区域_20190627151942.png

紧接着,我花了几个小时来找bug,曾一度怀疑我的签名和验签方法就是个摆设.但是然并卵,于是我翻出支付宝官方给的demo找问题,结果找到了如下一段:

深度截图_选择区域_20190627152430.png

按照这段逻辑来理解的话,那应该是将json串'{"a":"123"}',转成对应的URL参数a=123,于是我再次尝试,

深度截图_选择区域_20190627152740.png

我的程序自然很赏脸,将签名粘贴到支付宝调试工具,终于通过了

深度截图_选择区域_20190627152947.png

法克!支付宝啊支付宝,能不能严谨点?害得我浪费了大半天的时间啊!

如果你也遇到了同样的问题,希望本问恰好帮助到了你.

标签: 支付宝

评论(0) 浏览(767)

记录一个跨域相关的疑难杂症

2018-12-18 liyangcoder PHP

最近在做一个前后端完全分离的项目,这其中自然少不了一个经典的话题——跨域。

前端用的uniapp,后端用的Laravel。

前者刚刚开始接触,用后者也从来没有做过前后端分离的项目,正因为两个都不是特别的熟悉,导致这次在坑中摸爬滚打了好久才爬出来。

阅读全文>>

标签: Laravel 跨域

评论(4) 浏览(2880)

proc_open(): fork failed errors

2018-11-22 liyangcoder PHP

If composer shows proc_open() fork failed on some commands:
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar

This could be happening because the VPS runs out of memory and has no Swap space enabled.

free -m

total used free shared buffers cached
Mem: 2048 357 1690 0 0 237
-/+ buffers/cache: 119 1928
Swap: 0 0 0

To enable the swap you can use for example:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

You can make a permanent swap file following this tutorial.


转自:https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

评论(2) 浏览(2484)

PECL、PEAR、phpize、composer 的区别和联系

2018-5-6 liyangcoder PHP

首先,我们先分别了解一下这四个东西的官方介绍。

PECL:

PECL是PHP扩展的存储库,提供了所有已知的扩展和托管设施的目录,用于下载和开发PHP扩展。

PECL使用的包装和分配系统与它的姐妹PEAR共享。

PEAR:

PEAR是一个可重用PHP组件的框架和分发系统。

phpize:

用 phpize 编译共享 PECL 扩展库。

有时候不能用 pecl 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。

Composer:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

阅读全文>>

评论(1) 浏览(2554)

微擎最新版SQL注入

2017-9-28 liyangcoder PHP


简介:

htmlspecialchars_decode 函数对全局过滤gpc产生的 \’ 进行转义,将可控的参数$html的污染值插入数据库后,产生SQL注入漏洞。

路径:

/网站根目录/web/source/site/editor.ctrl.php

披露时间: 

2017-06-02 08:19:47


阿里云给出的解决方案并不是修改此文件,而是修改/网站根目录/web/source/founder/display.ctrl.php


在第14行的如下代码后


$founders = explode(',', $_W['config']['setting']['founder']);

增加

$identity = uni_permission($_W['uid']);
if ($identity != ACCOUNT_MANAGE_NAME_FOUNDER && $identity != ACCOUNT_MANAGE_NAME_VICE_FOUNDER) {
    itoast('???????', referer(), 'error');
}

评论(2) 浏览(7321)

Yii2自动生成接口文档插件 yii2-doc-online

2017-8-29 liyangcoder PHP

    眼下前后端完全分离的开发模式是越来越火,好多项目都直接摒弃了常规的套页面方式,而改用前端控制主要业务逻辑,后端只提供接口数据的模式。这样一来,前后端就需要频繁的沟通接口含义。于是一个好的接口文档总是能事半功倍的,但是后台开发人员开发出接口后,写接口文档又是一个麻烦的事情,费时费力不说,当接口改动时,还要时刻记着去修改接口文档。

    介于本人平时需要开发很多接口,也要写很多文档,于是决定开发一款可以自动生成接口文档的小工具——yii2-doc-online,只要开发人员按照规范写好注释,那么接口文档就会自动生成了。

阅读全文>>

标签: yii2 yii2-doc-online

评论(8) 浏览(6415)

<转>微信素材上传返回提示 "errcode":41005的原因以及以及解决方案

2017-6-12 liyangcoder PHP

【原因】:由于不同php版本导致curl方法用法有所改变导致的

【解决方案】:将自己即将要进行微信请求的数据适当处理一下,如下:
例如未处理的数据如下

$data=array(
    'media'=>'@'.'自己的文件路径'
);


上面的格式微信官方文档也是这样的写的,但是如果你php版本>=5.6后,这种写法就会导致文件无法进行上传到微信服务器最保险的做法如下(兼容所有php版本),将上面的数组作如下处理

if (class_exists('\CURLFile')) {
    $data[$k] = new \CURLFile(realpath($this->getImage($v, $file_name)));
} else {
    $data[$k] = '@'.realpath($this->getImage($v, $file_name));
}
【为什么要这么做?】:

阅读全文>>

标签: 微信

评论(1) 浏览(1893)

php使用glob方法引入多个文件

2017-5-26 liyangcoder PHP

有时候我们有这样的需求,一个项目的入口处,需要引入多个配置文件,最简单粗暴的方法是这样的。


require(__DIR__.'/config/database.php');
require(__DIR__.'/config/redis.php');
require(__DIR__.'/config/memcache.php');


这样引入自然是可以的,但是有两个问题:

阅读全文>>

标签: PHP

评论(0) 浏览(3612)

Powered by emlog 冀ICP备13011830号-1