表单验证之PHP代码框架

王朝php·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

我在上一篇文章中讲到使用javascript做集成表单验证的方法,对于客户端验证已经足够,但好的表单验证应同时在客户端和服务器端进行——这正是写本文的目的。

如果采用一般的验证方法应该怎样写呢?

if ($_POST['some'] 不满足 condition) {

die("wrong");

}

类似于javascript的集成验证方法,在PHP中也可利用数组和eval语句实现表单验证(服务器端)框架。一般步骤:

1、将用户提交的数据从$_GET或$_POST数组收集到自定义数组(可选),

2、填充验证数组(包括变量名、条件及提示等),

3、添加固定的验证代码。

下面我来举例说明,假设你要从网页中收集用户姓名及年龄,并且在服务器端实现数据验证,那么你可能需要form.html和act.php。form.html中包含表单:

<form method=post action=act.php>

姓名:<input type=text name='name'><br>

年龄:<inupt type=text name='uage' ><br>

<input type=submit value="提交">

</form>

act.php中将实现表单的验证:

$userinfo = array(); // 步骤1

$userinfo['name'] = isset($_POST['uname']) ? $_POST['uname'] : '';

$userinfo['age'] = isset($_POST['uage']) ? (int)$_POST['uage'] : 0;

$error_message = ""; // 错误信息

// 步骤2

$elems = array(

array("\$userinfo['name']", 'strlen(#)<1', '姓名不能为空!'),

// 若省略步骤1则按如下方式改写:

// array("\$_POST['uname']", 'strlen(#)<1', '姓名不能为空!'),

array("\$userinfo['age']", '#<=0', '年龄不正确!')

);

// 步骤3

for($i = 0; $i < count($elems); $i++) {

if(eval("if(".preg_replace("/[#]/", $elems[$i][0], $elems[$i][1]).") return false;") === false) {

$error_message .= $elems[$i][2];

}

} 这样,我们每次只须填充验证数组$elems就可完成表单验证。

希望对你们有用,我也很想知道你们是怎么做的。

这样,我们每次只须填充验证数组$elems就可完成表单验证。

希望对你们有用,我也很想知道你们是怎么做的。

这样,我们每次只须填充验证数组$elems就可完成表单验证。

希望对你们有用,我也很想知道你们是怎么做的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航