*/ $_POST = strip_
sql($_POST); $_GET = strip_sql($_GET); $_COOKIE = strip_sql($_COOKIE); /** 使用 strip_sql()函数来过滤 $_POST $_GET */ unset($search_arr, $replace_arr); /** unset 使用过但以后不需要的变量。这个是很好的习惯。第一不会浪费内存。如果变量存了大量的数据字 节,而后你的
程序是一直不需要用的。那么 就会很浪费内存。拉底程序性能 . 哈哈。真很书面。反正是好习惯我们都要
学习的拉。 $_COOKIE; 一般不是开源的站。很少过 SQL 关键字过滤。不过这个也是冒很大风险的。
*/ $magic_quotes_gpc = get_magic_quotes_gpc(); // get_magic_quotes_gpc()检测 gpc 是否系统自动转意。 gpc 是什么呢? GET POST COOKIE 来来去去就这几个东西罗。会返回 真或假 if(!$magic_quotes_gpc) { $_POST = new_addslashes($_POST); $_GET = new_addslashes($_GET); } /** 判断一下
系统是否打开了自动对 gpc 进行转意这个选择。如果是的话,就不需要我们自动转意了。如果不 是那么还是要老百姓的手段。自己动手丰衣足食。 来看下也是在 global.func.php 文件里面定义的这个函数: 其实是一个封装好的 php 的 addslashes() 函 数的函数。PHP 都自己有了为什么还要自己封装成函数呢? 理由很简单。为了以后的扩展更改容易罗。如果我们一开始就全部用 addslashes() 这个函数来对 ' 进行 转意的话。那么以后随着程序的发展。我可能想多过滤个 ^ * ( )之类的 那如何是好呢?所以为了以后孩子的成长。我们还是最好封起来吧。 记住:以后有可能会边的东西。最好 都封装成模块。函数 。类。 这样程序的灵活度就上去了。 function new_addslashes($string) { if(!is_array($string)) return addslashes($string); foreach($string as $key => $val) $string[$key] = new_addslashes($val); return $string; } 这个函数也是写得贼好。也是同时考虑
过滤 字符窜或数组,也是使用了 传归。看下就应该明白了吧。这 个不用说了。我们要学下这个思路这个方法方式哦。这样才能进步。 哈哈。我们要懂模仿。 */ @extract($_POST, EXTR_OVERWRITE); @extract($_GET, EXTR_OVERWRITE); /** 嘿。 extract 前面加个 @鸡蛋做什么呢??抑制错误的。还不懂的话。自己百度了。 为什么用 extract()函数呢. 平时我们程序 是不是要常使用 $_POST $_GET 来获取传递的变量呀。是不是 感觉贼麻烦呀。 比如 $_POST['xx'] 这样接受是挺好。但写多了很麻烦是吧。我是感觉麻烦。我现在想直接就 $xx 就可以 获取传递过来的东西。那怎么办呢。 就用了 extract()函数来实现这么一个技巧。 这个技巧在 discuz 论坛上也有应用。 */ unset($_POST, $_GET); /** unset() 好处不用说了吧。 释放 $_POST $_GET 数组 ,因为已经不需要他们了。 */ ?>
明天放假了.今天在写点罗.放假没空写了.要陪老婆,大家看了有什么不明白的.可以跟帖问.我懂的 我会回答.谢谢
PHPCMS 整站代码分析讲解(二) 整站代码分析讲解(
[Copy to clipboard] [ - ] CODE: /** 代码讲解分析: 逆雪寒. 2007 - 12 - 21 */ require PHPCMS_ROOT.'/config.inc.php'; /** 加栽整站的配置参数文件。一般的程序都会有这个文件。做什么的呢?比如一些数据库连接地址。用户名, 密码等。需要用到的参数都定义在这个文件里面。这样以后配置变了。我们只要改动下这个文件里面的 变量值就好。是不是很方便呢。呵呵. 在这里说下 require() 这个加载函数。 require 和 include 都是用 来加载其他 PHP 文件用的。但他们是有区别的。 require 函数:是"预解释"函数。就是程序一加载,就执 行了 require 函数。而 include 呢。是个过程加载函数。我们可以在逻辑里比如: if 里面使用 include 来 动态的加载其他程序片段。而 require 就不行。*/ require PHPCMS_ROOT.'/languages/'.$CONFIG['langua