;

1.安装 cnpm install echarts –save 2.html <template> <div class="charts"> <div id="myCharts" :style="{width:’800px’,height:’380px’}"></div> </div> </template> 3.js import echarts from ‘echarts’ export default { name: ‘myCharts’, data () { return { myCharts:”, options:{} //echarts初始配置信息 } }, mounted() { this.myCharts=echarts.init(document.getElementById(‘myCharts’)); this.myCharts.setOption(this.options); this.getchart(); }, methods:{ getchart:function(){ this.$ajax.get(‘url’) .then((reps)=>{ this.myCharts.s…

vue中使用echarts 2018年1月19日
;

1 我朋友刘刚的一天是这样度过的: 叮铃铃——早晨闹钟响起。 他眼一睁,立马抓过手机,打开“得到”,倾听60秒罗胖教导。刷牙与吃早饭时,打开“喜马拉雅”,“完成了30分钟的音频学习。”然后,他出门上班。地铁上,再点开“知乎live”“听了三个知名答主的经验分享。”中午吃饭与午休的时间,他又点开了“在行”,“抓紧学习了《如何成为写作高手》。”下班路上,他又打开“得到”,“我在上面订阅了5个专栏。”吃完饭,上床,打开“直播”,“听了李笑来的《普通人如何实现财富自由》。” 然后刘刚带着满满的充实感,终于无比欣慰地进入了梦乡。 2 刘刚这两年很焦虑。 打开电视,看到别人英语流利如老外,他坐不住了,下了一个英语APP,走路、做饭都戴着耳机练习听读。 打开公号,读到《这个世界正在惩罚不学习的人》,他坐不住了,赶紧买回一摞书。 刷刷知乎,他又一声惊叹:“这个人的回答好专业好高深,我差太远了,不行,我得订他专栏。” 我问刘刚:“你干嘛把自己弄得这么累啊?” 刘刚一下说了三个原因: “时代变化太快,担心自己的知识不够用。” “别人懂的东西自己不懂,怕落后于他人。” “未来充满了不确定性,害怕自己被社会淘汰。” 刘刚的三个担心,其实极具普遍性。这个时代,很多人都像他一样患上了知识焦虑症。 一天不求知,心里就不安。 何为知识焦虑症? 就是我们对新的知识、新的信息和…

罗振宇的骗局(转载) 2018年1月19日
;

1.路径 /etc/mysql/my.cnf 2.去掉log_bin的注释 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M 3.重启mysql service mysql restart 4.生成文件 /var/log/mysqlmysql-bin.000001 mysqlbinlog可用于数据库被误删后的恢复

mysql开启binlog 2018年1月16日
;

public: 公开可见,用在类中,声明类的某个方法或变量属性可以直接在外部调用。 protected: 对象内部可见 (该对象的子对象同样可以访问) private: 对象自身内部可见 (不包含该对象的子对象,或者说private属性和方法不会被继承) global: 是在方法(函数)中,如果想要使用一个在方法外部声明的变量,可以使用global来声明。 static: 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。 const: 可以把在类中始终保持不变的值定义为常量。 define(): 函数定义一个常量。 self: 指向当前类的指针 this: 指向当前对象的指针 parent: 指向父类的指针

public protected private global static const define self this parent 2018年1月15日
;

1.file_put_contents,file_get_contents $url = ‘http://example.com/image.jpg’; $img = ‘/my/folder/flower.jpg’; //路径加新的文件名,也可以为相对路径 file_put_contents($img, file_get_contents($url)); 备注:allow_url_fopen配置项需要为true 2.copy copy(‘http://example.com/image.jpg’, ‘local/folder/flower.jpg’); 3.curl $ch = curl_init(‘http://example.com/image.jpg’); $fp = fopen(‘/my/folder/flower.jpg’, ‘wb’); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp); 4.加入调试信息 $img = ""; $img = file_get_contents($image); echo $img; //for…

php下载图片并保存 2018年1月7日
;

后台添加book分类,在functions.php添加如下代码 add_action( ‘init’, ‘create_post_type’ ); function create_post_type() { register_post_type( ‘book’, array( ‘labels’ => array( ‘name’ => __( ‘book’ ), ‘singular_name’ => __( ‘book’ ) ), ‘public’ => true, ‘has_archive’ => true, ) ); }

wordpress 后台添加自定义菜单 2018年1月6日
;

问题描述: element表单元素加载时候控制台提示 [Vue warn]: The computed property "fields" is already defined in data. 错误原因: 同时引入了vee-validate和elementUI插件,他们的计算属性fields冲突了 解决方法: 修改vee-validate的fieldsBagName配置项 Vue.use(VeeValidate, { xxxx:’xxxx’, fieldsBagName: ‘veefields’ //此处默认为fields });

The computed property fields is already defined in data 2018年1月5日
;

bxslider轮播插件 pc端正常,但是切换到移动端后,每次轮播切换时候在控制台会有此提示(控制台报错,但不影响功能) Uncaught DOMException: Failed to execute ‘releasePointerCapture’ on ‘Element’: InvalidPointerId 查看官网demo此报错同样存在 1.查找代码 touchPoints = (typeof orig.changedTouches !== ‘undefined’) ? orig.changedTouches : [orig]; 2.在后面添加如下代码 var chromePointerEvents = typeof PointerEvent === ‘function’; if (chromePointerEvents) { if (orig.pointerId === undefined) { return; } }

Failed to execute releasePointerCapture on Element: InvalidPointerId 2018年1月5日
;

1.安装 cnpm install element-ui -S 2.main.js中引入 import ElementUI from ‘element-ui’ import ‘element-ui/lib/theme-default/index.css’ 3.main.js中全局安装 Vue.use(ElementUI) 4.其它 cnpm update -g element-ui //更新 cnpm uninstall -g element-ui //卸载 安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法将被作为 Vue 的参数调用。 当 install 方法被同一个插件多次调用,插件将只会被安装一次。

ElementUI安装及引用 2018年1月4日
;

参考资料: https://codex.wordpress.org/Class_Reference/WP_Query https://codex.wordpress.org/Class_Reference/wpdb

wordpress中WP_Query和wpdb类介绍 2018年1月4日

步骤1. 手机通过USB连接到电脑 步骤2. 手机设置 开发者选项->USB调试 步骤3. 保证电脑可以访问google.com 步骤4. 进入电脑端调试页面 chrome://inspect/#devices 步骤5. 手机用chrome打开需要调试的网站 步骤6. 电脑端会显示手机上打开的所有页面,点击inspect即可 备注: 如果页面一直显示加载白屏尝试以下操作 chrome://appcache-internals/# 清除一下这里的缓存

chrome远程调试 2017年12月31日
;

1.mysql $dbc=mysql_connect(‘localhost’,$user,$pass) or die(‘error!’); mysql_select_db("testdb", $dbc); mysql_query("SET NAMES ‘utf8’"); $query="select * from `testtable`"; $result=mysql_query($query,$dbc) or die(‘wrong’); while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ print_r($row); } 2.mysqli 3.pdo try { $dbh = new PDO(‘mysql:host=localhost;dbname=testdb;charset=UTF8’, $user, $pass); foreach($dbh->query(‘SELECT * from testtable’) as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Error!: " . $e-&gt…

mysql mysqli pdo语法对比 2017年12月30日
;

介绍:因为JS文件是在页面加载时候读入内存的,页面加载完成后直接修改原有JS是无法生效的。 思路一: 既然既有的无法修改,那么我们可以添加新的代码上去,这个其实也就是浏览器插件执行的原理。 具体实施:分析页面,找到需要逻辑判断的变量,在控制台中直接赋值 思路二: 简单粗暴,直接在浏览器中禁用JS脚本 IE: 工具 -> Internet选项 -> 安全 -> 自定义级别 -> java小程序脚本,选择禁用 -> 确定 -> 确定 (重启计算机后生效)。 Google: 设置 -> 高级 -> 内容设置 -> javascript FireFox: 地址栏输入about:config进入高级设置菜单,找到javascEnabled项,右击切换即可。

如何绕过网站中的表单验证 2017年12月30日
;

sqlmap 1.安装python环境 下载python2,python3不兼容 Python 2.7.14 2.安装sqlmap zipball 3.开始 #python sqlmap.py -h //获取帮助 #python sqlmap.py -u http://baidu.com nmap 1.官网下载https://nmap.org/download.html nmap-7.60-setup.exe(最新稳定版本,可视化操作) nmap-7.60-win32.zip(最新稳定版本,命令行模式)

sqlmap及nmap,安装与起步 2017年12月28日
;

1.全局设置 设置->讨论->允许他人在新文章上发表评论 2.具体文章设置 文章/页面->快速编辑->允许评论 3.后台右上角-显示选项,开启页面内部评论控制 文章设置会覆盖全局设置

wordpress控制评论开关 2017年12月27日
;

方式一:全局文件内直接定义 在main.js里进行全局注册 Vue.prototype.ajax = function (){} 在所有组件里可调用 this.ajax 方式二:子组件内定义然后全局引入 // myfun.js 组件 exports.install = function (Vue, options) { Vue.prototype.myfun = function (){ alert(‘aaaaaaa’); }; }; // main.js 入口 import myfun from ‘./commons/myfun.js’ Vue.use(myfun); // ccc.js 子组件 this.myfun();

vue中定义全局方法 2017年12月26日
;

1.安装vee-validate cnpm install vee-validate –save 2.安装vue-i18n cnpm install vue-i18n –save 3.main.js中引入 import VeeValidate from ‘vee-validate’; import zh_CN from ‘vee-validate/dist/locale/zh_CN’ import VueI18n from ‘vue-i18n’; Vue.use(VueI18n) const i18n = new VueI18n({ locale: ‘zh_CN’, }) Vue.use(VeeValidate, { i18n, i18nRootKey: ‘validation’, dictionary: { zh_CN } }); 4.页面中使用 <input type="text" placeholder="邮箱" v-validate ="’required|email’" name="email"/> <span class="errortip" v-show="errors.has(’email’)&q…

vue表单验证,安装插件VeeValidate以及设置中文错误提示 2017年12月25日
;

1:url内存在一个’#’ 路径:router/index.js export default new Router({ mode:"history", //添加此配置选项 routes: [] }) 2.通过端口转发处理跨域 路径:config/index.js proxyTable: { ‘/api’: { target: ‘http://xxx.com’, changeOrigin: true, pathRewrite: {} }, ‘/service’:{} } 请求 this.$ajax.get(‘/api’).then(); //请求的正式地址为’http://xxx.com/api’ 注意:修改后需要重启服务,否则不生效

Vue中路由及跨域问题 2017年12月25日
;

1.安装 cnpm install axios –save 2.main.js中全局引入 import axios from ‘axios’ Vue.prototype.$ajax = axios 3.调用 this.$ajax.get(URL) .then((response)=>{ console.log(response); }) .catch((error)=>{ console.log(error); });

vue中安装axios来处理ajax 2017年12月25日
;

1.html部分 <ul v-model="menuNow" class="TabMenu clearfix"> <li class="fl" v-bind:class="{active:menuNow==’tab1′}" @click="setMenu(‘tab1′)">tab1</li> <li class="fl" v-bind:class="{active:menuNow==’tab2’}" @click="setMenu(‘tab2′)">tab2</li> <li class="fl" v-bind:class="{active:menuNow==’tab3’}" @click="setMenu(‘tab3’)">tab3</li> </ul> <div class="TabContent"> <tab1 v-if="menuNow === ‘tab1’">…

vue实现tab切换效果 2017年12月23日
;

<p> <input v-if="!showPass" type="password" v-model="password"/> <input v-if="showPass" type="text" v-model="password"/> <span v-if="!showPass" class="icon eye-slash" @click="showPass = !showPass"></span> <span v-if="showPass" class="icon eye" @click="showPass = !showPass"></span> </p> new Vue({ el: ‘body’, data: { showPass: false, password: ” } })

vue密码切换显示隐藏 2017年12月23日
;

步骤1:修改配置文件,末尾追加代码 /etc/ssh/sshd_config Subsystem sftp internal-sftp # This section must be placed at the very end of sshd_config Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 含义:所有sftponly组用户将被限制在它们的主目录内,而且只能通过SFTP方式登录 #Subsystem sftp /usr/lib/openssh/sftp-server 对上面这一行加#注释 步骤2:创建sftponly分组 groupadd sftponly 步骤3:创建用户及密码 useradd obama passwd obama 步骤4:设置用户分组 usermod obama -g sftponly 步骤5:禁止SSH shell登录 usermod obama -s /bin/false 步骤6:设置用户主目录 mkdir -p /var/www/obama #-p确保目录名称存在,不存在的就建一个 usermod obama -d /var/www/obama #-d修改用户登入时的目录 步骤…

创建SFTP用户,并限制其访问上级目录 2017年12月19日
;

(function() { var h = {} , mt = {} , c = { id: "9ee4bb9d5bb1d41420031974fceab60f", dm: ["willless.com"], js: "tongji.baidu.com/hm-web/js/", etrk: [], icon: ”, ctrk: false, align: -1, nv: -1, vdur: 1800000, age: 31536000000, rec: 0, rp: [], trust: 0, vcard: 0, qiao: 0, lxb: 0, conv: 0, med: 0, cvcc: ”, cvcf: [], apps: ” }; var q = void 0 , r = !0 , t = null , u = !1; mt.cookie = {}; mt.cookie.set = function(a, b, d) { var f; d.H && (f = new Date, f.setTime(f.getTime() + d.H)); document.cookie = a + "=" + b + (d.domain ? &quo…

百度统计,源代码解读 2017年12月11日
;

首先到http://www.cz88.net/ 下载一个最新的ip库,安装ip库后会生成一个快捷方式,如下图所示: 点击打开后,出现下图界面: 点击解压,会生成一个20多兆的文本文件,打开或者下载一个UltraEdit打开,另存为utf-8的文本文档,这样可以防止出现乱码。在此之前我们要修改一下php.ini的配置,不然中途可能会出现一些错误 默认情况下:MySQL导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下: 在php.ini中修改相关参数: 影响MySQL导入文件大小的参数有三个: memory_limit=128M,upload_max_filesize=2M,post_max_size=8M 我比较懒,直接将这三个都改成了128。 首先创建数据库 CREATE TABLE ip_data ( ipstart INT UNSIGNED NOT NULL, ipend INT UNSIGNED NOT NULL, region VARCHAR(50) NOT NULL, address VARCHAR(100) NOT NULL, PRIMARY KEY (ipstart, ipend) ) TYPE = MyISAM; 首先在PhpMyAdmin里手动建一个名称为ip_data的数据库…

利用纯真IP库建立mysql ip数据库 2017年12月1日