POST方式提交的流程

1、 初始化变量(Initialize Variable)。将需要使用的变量符号进行初始化,防止数据库读写错误或者因为安全问题而产生的影响。即使未提取到相应的数据,程序也不会受到影响。 例如:$username = “”; 2、  提取数据(Get data)可以用$_POST提取,或者使用分离函数,将数据从此数组分离成直接访问的变量。这个程序写在这里。经过分离后的变量可以直接访问 例如:$_POST[‘author’] 可以直接用 $author 去访问。增强了程序的敏捷性和适用性。 
 
foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
         foreach($$_request as $_key => $_value) {
                   $_key{0} != '_' && $$_key = daddslashes($_value);
         }
}
function daddslashes($string, $force = 0) {
         !defined('MAGIC_QUOTES_GPC')&&define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
         if(!MAGIC_QUOTES_GPC || $force) {
                   if(is_array($string)) {
                            foreach($string as $key => $val) {
                                     $string[$key] = daddslashes($val, $force);
                            }
                   } else {
                            $string = addslashes($string);
                   }
         }
         return $string;
}
    3、  数据检查(Data Checking)检查数据的完整性和合法性,以及管理员设置的可行性等等因素。对一些必要的元素做强制处理,不能通过检查的要返回重新填写,对一些非必须元素在安全范围之内的不会对数据库造成影响的,不能通过检查可以使用初始化值,或者设为空。 以下几个因素需要注意:数据完整性、数据类型、禁止条件、转义字符、数据来源来源、NULL值。 例如:
 
if(in_array($user_ip,$band_ip_array))  
    exit( "your ip is banded,please connect to administrator!");
}
if(!check_user($username)){   
     exit( " username that you select has existed,please back and change another one");
}
if(strlen($address)<16){   
    echo "your address is too short,you can change it after login in the system!";
}
//continue!
$sql = addslashes($sql)
4、  提交数据(Submit Data)将检验合法的数据以一定的形式提交给服务器进行数据处理,或写入数据库,或写入缓存,最后将一些使用过的变量UNSET()掉。虽然并节省不了多少的变量占用,但是这种设置方式允许你即使在其他地方引用包含此文件也不会产生混乱。

Comments