Stay hungry, Stay foolish

0%

案例

一天,博主小张在google里输入自己的博客的关键字搜索时,发现几件可疑的情况:
域名x、y、z排名在小张的博客之前,但是当点开它们时,却发现和A的博客是一模一样的。里面的所有链接仍是小张博客的。

分析

通过打开x、y、z发现,并不是域名跳转,http状态是200,初步断定并非网上流传的域名绑架;
再通过在浏览器中转入vps的ip地址,进入的便是小张的默认博客,vps上挂着小张和朋友们的好几个博客,只有小张的博客被绑架了。看来ip被绑架了:别人把域名解析到了vps的ip上了。

Read more »

SQL预处理已经不是什么新鲜的东西了,它可以很好的防sql注入。而ThinkPHP直到3.1中才在其orm里增加对其的支持。相关介绍在手册里的《14.3 防止SQL注入》这一节。

使用环境

where(), query(), execute()

使用方式

  • 变长参数
1
"id=%d and username='%s' and xx='%f'",$id,$username,$xx
  • 数组参数
1
"id=%d and username='%s' and xx='%f'",array($id,$username,$xx)
Read more »

自己的开发环境一直用的集成环境包xampp,如何来实现扩展的安装呢?
在网上找一篇以apc为例的文章,翻译一下安装步骤,再写写实际安装中遇到的问题:

安装步骤

  • 确保你卸载或禁用所有之前安装过的php、pecl、pear。

  • 下载安装最新的xampp。

  • (可选)添加/opt/lampp/bin到你的PATH中。

  • 下载并安装xampp开发包。(注意,这一步可能会覆盖之前安装的xampp的配置)

  • 下载要安装的扩展包。

  • 执行如下命令

1
2
3
4
5
6
sudo su
cd APC-+0.16
/opt/lampp/bin/phpize
./configure
make
make install
  • 在php.ini中添加以下几行extesnsion=”apc.so”
Read more »

PHP是解释型语言。我们写的代码都要经过php给翻译成底层可执行的代码。如果程序中有php不能解析的语句,就会报Parse error的错误。

Parse error: syntax error, unexpected T_STRING

这里的T_STRING就是一个解析代号。

解析代号表

手册里列出了诸如下面这样的对应关系表:

T_ABSTRACT abstract 抽象类(自 PHP 5.0.0 起可用)
T_AND_EQUAL &= 赋值运算符
T_ARRAY array() array(),数组语法
T_ARRAY_CAST (array) 类型转换

Read more »

环境

  • php5.2.6、apache2.2.8、mysql5.0.51b、xp(虚拟机)
  • php5.3.5、apache2.2.17、mysql5.5.8、win7

实例

外部调用

1
2
3
4
5
6
7
8
class ClassTest{
public $_publicT;
protected $_protectedT;
private $_privateT;
}

$classT = new ClassTest();
var_dump(get_class_vars(get_class($classT)));
Read more »

##需求

test.php里有一个变量$_auth = ‘222’;使其可以在另一个文件index.php里访问

1
2
3
4
5
6
7
8
9
10
11
12
function test(){
require_once 'test.php';
var_dump($_auth);
}
class Test{
static function testRequire(){
require_once 'test.php';
var_dump($_auth);
}
}
test(); //output:222
Test::testRequire(); //output:Undefined variable: _auth
Read more »