Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。
废话不多说了,直接给大家贴代码了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php class ContactForm extends CFormModel { public $_id ; public $contact ; //联系人 public $tel ; //电话 public $fax ; //传真 public $zipcode ; //邮编 public $addr ; //地址 public $mobile ; //手机 public $email ; //邮箱 public $website ; //网址 public $qq ; //QQ public $msn ; //MSN public function rules() { return array ( array ( 'contact' , 'required' , 'on' => 'edit' , 'message' => '联系人必须填写.' ), array ( 'contact' , 'length' , 'on' => 'edit' , 'min' =>2, 'max' =>10, 'tooShort' => '联系人长度请控制在2-10个字符.' , 'tooLong' => '联系人长度请控制在2-10个字符.' ), array ( 'tel' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的电话号码.' ), array ( 'fax' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的传真号码.' ), array ( 'mobile' , 'match' , 'pattern' => '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/' , 'message' => '请输入正确的手机号码.' ), array ( 'email' , 'email' , 'on' => 'edit' , 'message' => '邮箱输入有误.' ), array ( 'zipcode' , 'required' , 'on' => 'edit' , 'message' => '邮编必须填写.' ), array ( 'zipcode' , 'numerical' , 'on' => 'edit' , 'message' => '邮编是6位数字.' ), array ( 'zipcode' , 'length' , 'on' => 'edit' , 'min' =>6, 'max' =>6, 'tooShort' => '邮编长度为6位数.' , 'tooLong' => '邮编长度为6位数.' ), array ( 'website' , 'url' , 'on' => 'edit' , 'message' => '网址输入有误.' ), array ( 'qq' , 'match' , 'pattern' => '/^[1-9]{1}[0-9]{4,11}$/' , 'message' => '请输入正确的QQ号码.' ), array ( 'msn' , 'email' , 'on' => 'edit' , 'message' => 'MSN输入有误.' ), ); } } |
完整示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
public $password2 ; //非数据库的字段,但是在view中需要用到 public $verify ; //手机验证码 public $fjg ; //忘记号码 /** * 映射数据库表名 * @return string the associated database table name<br><br> * www.shouce.ren */ public function tableName() { return 'adm_user' ; } /** * 验证规则 * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array ( //array('mobile_phone,name,status', 'required'), array ( 'mobile_phone' , 'unique' ), //'message' => '该手机号已经存在!' array ( 'mobile_phone' , 'match' , 'pattern' => '/^(13|15|18)[0-9]{9}$/' , 'message' => '请输入正确的经办人手机号码.' ), //array('certificate_id', 'match','pattern' => '/(.jpg|.gif|.png|\d)$/','message' => '请重新选择证书图像并且后缀只能是jpg、gif、png格式.'), array ( 'phone' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$/' , 'message' => '请输入正确的座机号码.' ), array ( 'fax' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的传真号码.' ), //array('email_address', 'match','pattern' => '/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/','message' => '请输入正确的邮箱.'), array ( 'email_address' , 'email' , 'message' => '请输入正确的邮箱.' ), //验证密码和确认密码 array ( "password2" , "compare" , "compareAttribute" => "password" , "message" => "两次密码不一致" , 'on' => 'register' ), array ( "password2" , "compare" , "compareAttribute" => "password" , "message" => "两次密码不一致" , 'on' => 'regonter' ), array ( 'qq' , 'match' , 'pattern' => '/^[1-9]{1}[0-9]{4,11}$/' , 'message' => '请输入正确的QQ号码.' ), array ( 'type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time' , 'numerical' , 'integerOnly' =>true), array ( 'verify' , 'numerical' , 'message' => '验证码不正确' , 'integerOnly' =>true), array ( 'name,user_type,tuijianren' , 'length' , 'max' =>20), array ( 'password' , 'length' , 'max' =>100), array ( 'email_address,business' , 'length' , 'max' =>50), array ( 'communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang' , 'length' , 'max' =>255), array ( 'role_id' , 'default' , 'setOnEmpty' =>true, 'value' =>10), array ( 'shangbiao' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ), array ( 'zhuanli' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ), array ( 'gongshang' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ), array ( 'password' , 'default' , 'setOnEmpty' =>true, 'value' => '123456' ), /*验证码*/ array ( 'verify' , 'checkVerify' , 'on' => 'register' ), array ( 'email_address' , 'checkemail' , 'on' => 'regonter' ), // array('certificate_id', 'file','allowEmpty'=>true, // 'types'=>'jpg, gif, png, doc, txt', // 'maxSize'=>1024 * 1024 * 10, // 10MB // 'tooLarge'=>'文件大小不能超过10M!', // 'message'=>'请先上传证书图像.' // ), // The following rule is used by search(). // @todo Please remove those attributes that should not be searched. array ( 'id,role_id,name, password,user_type, email_address,tuijianren,shangbiao,company_type,zhuanli,gongshang,money,yhzh,yhmc,yyzz_id,yhdh,type,level, phone, qq, mobile_phone, fax, communication_address, nationality, industry, company, business, register_address, certificate, status, create_by_id, create_time, update_time' , 'safe' , 'on' => 'search' ), ); } /* * 手机验证码校验 */ public function checkVerify( $attribute , $params ) { $model = new Mess(); $d_title = $model ->find( array ( 'condition' => 'suij=:suij and tel=:tel and type>:type and time>:time' , 'params' => array ( ':suij' => $this ->verify, ':tel' => $this ->mobile_phone, ':type' =>0, ':time' =>(time()-3600)), 'select' => array ( 'id' ))); //$d_title = $model->findByAttributes(array('suij'=>$this->verify,'tel'=>$this->mobile_phone),array('select'=>array('id'))); if ( $d_title [ 'id' ]<1) { $this ->addError( 'verify' , "验证码不正确。" ); } else { if ( $this ->password == $this ->password2) { $model ->updateAll( array ( 'type' =>0), array ( 'condition' => 'suij=:sj' , 'params' => array ( ':sj' => $this ->verify))); } } } |
以上代码就是关于PHP Yii框架之表单验证规则大全的全部内容,希望大家喜欢。