首页 > 开发 > PHP > 正文

PHP Yii框架之表单验证规则大全

2024-05-04 23:40:27
字体:大 中 小
来源:转载
供稿:网友

Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧

Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。

废话不多说了,直接给大家贴代码了。

 

 
  1. <?php 
  2. class ContactForm extends CFormModel 
  3. { 
  4. public $_id; 
  5. public $contact;//联系人 
  6. public $tel;//电话 
  7. public $fax;//传真 
  8. public $zipcode;//邮编 
  9. public $addr;//地址 
  10. public $mobile;//手机 
  11. public $email;//邮箱 
  12. public $website;//网址 
  13. public $qq;//QQ 
  14. public $msn;//MSN 
  15. public function rules() 
  16. { 
  17. return array( 
  18. array('contact','required','on'=>'edit','message'=>'联系人必须填写.'), 
  19. array('contact','length','on'=>'edit','min'=>2,'max'=>10,'tooShort'=>'联系人长度请控制在2-10个字符.','tooLong'=>'联系人长度请控制在2-10个字符.'), 
  20. array('tel', 'match','pattern' => '/^(/d{3}-|/d{4}-)(/d{8}|/d{7})?$/','message' => '请输入正确的电话号码.'), 
  21. array('fax', 'match','pattern' => '/^(/d{3}-|/d{4}-)(/d{8}|/d{7})?$/','message' => '请输入正确的传真号码.'), 
  22. array('mobile', 'match','pattern' => '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/','message' => '请输入正确的手机号码.'), 
  23. array('email','email','on'=>'edit','message'=>'邮箱输入有误.'), 
  24. array('zipcode','required','on'=>'edit','message'=>'邮编必须填写.'), 
  25. array('zipcode','numerical','on'=>'edit','message'=>'邮编是6位数字.'), 
  26. array('zipcode','length','on'=>'edit','min'=>6,'max'=>6,'tooShort'=>'邮编长度为6位数.','tooLong'=>'邮编长度为6位数.'), 
  27. array('website','url','on'=>'edit','message'=>'网址输入有误.'), 
  28. array('qq', 'match','pattern' => '/^[1-9]{1}[0-9]{4,11}$/','message' => '请输入正确的QQ号码.'), 
  29. array('msn','email','on'=>'edit','message'=>'MSN输入有误.'), 
  30. ); 
  31. } 
  32. } 

完整示例:

 

 
  1. public $password2;//非数据库的字段,但是在view中需要用到 
  2. public $verify; //手机验证码 
  3. public $fjg; //忘记号码 
  4. /** 
  5. * 映射数据库表名 
  6. * @return string the associated database table name<br><br> * www.shouce.ren 
  7. */ 
  8. public function tableName() 
  9. { 
  10. return 'adm_user'; 
  11. } 
  12. /** 
  13. * 验证规则 
  14. * @return array validation rules for model attributes. 
  15. */ 
  16. public function rules() 
  17. { 
  18. // NOTE: you should only define rules for those attributes that 
  19. // will receive user inputs. 
  20. return array( 
  21. //array('mobile_phone,name,status', 'required'), 
  22. array('mobile_phone', 'unique'),//'message' => '该手机号已经存在!' 
  23. array('mobile_phone', 'match','pattern' => '/^(13|15|18)[0-9]{9}$/','message' => '请输入正确的经办人手机号码.'), 
  24. //array('certificate_id', 'match','pattern' => '/(.jpg|.gif|.png|/d)$/','message' => '请重新选择证书图像并且后缀只能是jpg、gif、png格式.'), 
  25. array('phone', 'match','pattern' => '/^(/d{3}-|/d{4}-)?(/d{8}|/d{7})?$/','message' => '请输入正确的座机号码.'), 
  26. array('fax', 'match','pattern' => '/^(/d{3}-|/d{4}-)(/d{8}|/d{7})?$/','message' => '请输入正确的传真号码.'), 
  27. //array('email_address', 'match','pattern' => '/^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$/','message' => '请输入正确的邮箱.'), 
  28. array('email_address','email','message'=>'请输入正确的邮箱.'), 
  29. //验证密码和确认密码 
  30. array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",'on'=>'register'), 
  31. array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",'on'=>'regonter'), 
  32. array('qq', 'match','pattern' => '/^[1-9]{1}[0-9]{4,11}$/','message' => '请输入正确的QQ号码.'), 
  33. array('type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time', 'numerical', 'integerOnly'=>true), 
  34. array('verify', 'numerical', 'message' => '验证码不正确','integerOnly'=>true), 
  35. array('name,user_type,tuijianren', 'length', 'max'=>20), 
  36. array('password', 'length', 'max'=>100), 
  37. array('email_address,business', 'length', 'max'=>50), 
  38. array('communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang', 'length', 'max'=>255), 
  39. array('role_id','default', 'setOnEmpty'=>true, 'value'=>10), 
  40. array('shangbiao','default', 'setOnEmpty'=>true, 'value'=>'0,0'), 
  41. array('zhuanli','default', 'setOnEmpty'=>true, 'value'=>'0,0'), 
  42. array('gongshang','default', 'setOnEmpty'=>true, 'value'=>'0,0'), 
  43. array('password','default', 'setOnEmpty'=>true, 'value'=>'123456'), 
  44. /*验证码*/ 
  45. array('verify','checkVerify', 'on'=>'register'), 
  46. array('email_address','checkemail', 'on'=>'regonter'), 
  47. // array('certificate_id', 'file','allowEmpty'=>true, 
  48. // 'types'=>'jpg, gif, png, doc, txt', 
  49. // 'maxSize'=>1024 * 1024 * 10, // 10MB 
  50. // 'tooLarge'=>'文件大小不能超过10M!', 
  51. // 'message'=>'请先上传证书图像.' 
  52. // ), 
  53. // The following rule is used by search(). 
  54. // @todo Please remove those attributes that should not be searched. 
  55. 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'), 
  56. ); 
  57. }  
  58. /* 
  59. * 手机验证码校验  
  60. */ 
  61. public function checkVerify($attribute,$params) 
  62. {  
  63. $model=new Mess(); 
  64. $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'))); 
  65. //$d_title = $model->findByAttributes(array('suij'=>$this->verify,'tel'=>$this->mobile_phone),array('select'=>array('id'))); 
  66. if($d_title['id']<1) 
  67. { 
  68. $this->addError('verify', "验证码不正确。"); 
  69. } 
  70. else 
  71. { 
  72. if($this->password == $this->password2) 
  73. { 
  74. $model->updateAll(array('type'=>0),array('condition'=>'suij=:sj','params'=>array(':sj'=>$this->verify))); 
  75. } 
  76. } 
  77. } 

以上代码就是关于PHP Yii框架之表单验证规则大全的全部内容,希望大家喜欢。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表