首页 > php100

PHP程序员最容易出现的错误总结


一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。

echo $_GET[usename] ;

这个例子有可能输出:

<script>/*更改admin密码的脚本或设置cookie的脚本*/</script>

这是一个明显的安全隐患,除非你保证你的用户都正确的输入。

如何修复 :

我们需要将< ,>,and 等转换成正确的HTML表示(< , >, and ),函数htmlspecialchars 和 htmlentities()正是干这个活的。

正确的方法:

echo htmlspecialchars($_GET[username], ENT_QUOTES);2. 不转意SQL输入

我曾经在一篇文章中最简单的防止sql注入的方法(php+mysql中)讨论过这个问题并给出了一个简单的方法 。有人对我说,他们已经在php.ini中将magic_quotes设置为On,所以不必担心这个问题,但是不是所有的输入都是从$_GET, $_POST或 $_COOKIE中的得到的!

如何修复:

和在最简单的防止sql注入的方法(php+mysql中)中一样我还是推荐使用mysql_real_escape_string()函数

阅读全文

PHP 5.0构造函数的实例讲解

大家都对
如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行。清楚地说,__是两个下划线。就像其它任何函数一样,PHP 5.0构造函数可能有参数或者默认值. 你可以定义一个类来建立一个对象并将其属性全放在一个语句(statement)中。

阅读全文

PHP5.0对象模型的属性和方法分析

今天我们向大家介绍的是关于
可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性。 你甚至可以用双重引用的字符串来放置这些表达式。 下面的例子中,对象House中的属性room包含了一组Room对象。

阅读全文

PHP 5.3闭包语法的具体讲解

PHP 5.3闭包语法就是一个匿名函数,它可以为开发者带来很多不同的体验。本文就介绍了它的几种使用方法。它与JavaScript的闭包相比稍微有点不同,不过,相对于
比如你现在就可以这样使用PHP 5.3闭包语法

阅读全文