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

2018-12-18 liyangweb.com 李杨 PHP

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

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

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

阅读全文>>

标签: Laravel 跨域

评论(4) 浏览(1609)

proc_open(): fork failed errors

2018-11-22 liyangweb.com 李杨 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) 浏览(1703)

JavaScript中的addEventListener自定义事件

2018-9-17 liyangweb.com 李杨 JavaScript

说到JavaScript事件,我们首先就能想到click事件、submit事件等等。但是有时候这些预定义的事件并不能满足我们的需求,比如在提供给第三方的SDK中。

由于SDK运行的环境非常复杂,第三方业务中有什么代码我们无法预知,这可能会导致事件冲突的问题,这时候我们就需要自定义事件来避免此类冲突了。

阅读全文>>

标签: addEventListener自定义事件

评论(3) 浏览(1892)

父页面于iframe通信

2018-7-18 liyangweb.com 李杨 HTML

下面是一个iframe和父页面相互通信的demo,其中使用了一个非常方便的方法postMessage,但是有时候,我们的子页面可能会包含其他业务逻辑,这里面如果也用到了postMessage,就难免会产生冲突,这时候,我们可以使用自定义事件来解决。

阅读全文>>

标签: iframe

评论(2) 浏览(1750)

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

2018-5-6 liyangweb.com 李杨 PHP

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

PECL:

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

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

PEAR:

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

phpize:

用 phpize 编译共享 PECL 扩展库。

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

Composer:

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

阅读全文>>

评论(1) 浏览(1786)

js多级返回上一级页面时出现的死循环解决方法

2018-5-2 liyangweb.com 李杨 JavaScript

history.go(-1)是js返回上一级的方法,很容易实现让页面从哪来回哪去,简单好用,但是如果我们有多级页面,这个方法会出现死循环。

比如我们访问页面的顺序是A->B->C,在C页面点击返回,会跳到B页面,在B页面再点击返回,就到了C页面,并不是我们期望的A页面,这样就出现了死循环,导致无论如何我无法返回到A页面。

解决方法:

阅读全文>>

评论(2) 浏览(1360)

iPhone中的webview显示iframe中的页面宽度超出屏幕

2018-4-22 liyangweb.com 李杨 HTML

今日在做一个项目,遇到了iPhone中iframe页面超宽的问题,业务场景大致是这样:

1.项目运行环境是移动端浏览器,APP中的webview,支持Android和iOS

2.页面中有一个iframe,包含了多个不同的外部链接,我们无法对此页面中的内容做任何更改

由于开发都是用PC模拟手机来进行的,本人使用的Android手机,开发完成后简单测试没发现任何问题,但是后期在iPhone中测试的时候,却发现,外部链接竟然有一半以上不能正常显示,经过各种尝试以及找了很多资料,最后终于找到一个完美解决的办法。

代码如下:

<div style="overflow: auto;-webkit-overflow-scrolling:touch;width:100%;height:100%;">
    <iframe src="http://www.baidu.com" frameborder="0" height="100%" scrolling='no' style="width: 1px; min-width: 100%; *width: 100%;"></iframe>
</div>

评论(2) 浏览(2612)

PHP分片上传

2018-4-22 liyangweb.com 李杨 JavaScript

PHP的上传受一些配置的影响,一般默认上传最大文件为8M,如果我们需要上传一个10M的文件怎么做呢?

简单实现的话,我们可以通过修改PHP的配置文件来实现:

upload_max_filesize = 2M //PHP最大能接受的文件大小
post_max_size = 8M //PHP能收到的最大POST值'
memory_limit = 128M //内存上限
max_execution_time = 30 //最大执行时间
但是如果我们需要上传一个100M的文件呢?单纯修改上面的配置是不行的,即使测试中能把文件传上去,等到生产环境多个用户一起访问,服务器配置再强大也得挂掉。

所以我们就需要在前端把文件拆分开,也就是所谓的分片上传。

分片上传用到了一些HTML5的新特性,所以对于一些比较老的浏览器就不能用了,我们可以提示用户去下载现代浏览器,或者使用flash来做兼容,本示例中,我们不考虑兼容问题,默认用户在使用现代浏览器。

阅读全文>>

标签: PHP分片上传 js分片上传 PHP大文件上传

评论(4) 浏览(2674)

微擎最新版SQL注入

2017-9-28 liyangweb.com 李杨 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) 浏览(5599)

jquery解析链接

2017-9-7 liyangweb.com 李杨 JavaScript

有时候我们需要分析一个url,在使用PHP和node.js时都有非常方便的方法/模块,但在JS我好像没发现什么好的方法,通过查找,在jQuery中发现了一个比较方便的方法。

示例如下:

阅读全文>>

标签: Jquery

评论(2) 浏览(1227)

Powered by emlog 冀ICP备13011830号-1