A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > yii用户注册表单验证实例

yii用户注册表单验证实例

时间:2015-12-28 09:02作者:fang人气:245

本文实例讲述了yii用户注册表单验证实现方法。分享给大家供大家参考,具体如下:

视图层:register.php

<?php

//使用小物件生成form元素

$form=$this->beginWidget('CActiveForm');

?>

<!--用户名-->

<?php echo $form->labelEx($model,'username');?>

<?php echo $form->textField($model,'username');?>

<?php echo $form->error($model,'username');?>

<br>

<!--密码-->

<?php echo $form->labelEx($model,'password');?>

<?php echo $form->passwordField($model,'password');?>

<?php echo $form->error($model,'password');?>

<br>

<!--确认密码-->

<?php echo $form->labelEx($model,'password2');?>

<?php echo $form->passwordField($model,'password2');?>

<?php echo $form->error($model,'password2');?>

<br>

<!--邮箱-->

<?php echo $form->labelEx($model,'email');?>

<?php echo $form->textField($model,'email');?>

<?php echo $form->error($model,'email');?>

<br>

<!--性别-->

<?php echo $form->labelEx($model,'sex');?>

<?php echo $form->radioButtonList($model,'sex',array(1=>'男',2=>'女'),array("separator"=>" "));?>

<br>

<!--年级-->

<?php echo $form->labelEx($model,'grade');?>

<?php echo $form->dropDownList($model,'grade',array(0=>"--请选择--",1=>"2010级",2=>"2011级",3=>"2012级"));?>

<?php echo $form->error($model,'grade');?>

<br>

<?php echo $form->labelEx($model,'hobby');?>

<?php echo $form->checkBoxList($model,'hobby',array(1=>"篮球",2=>"足球",3=>"排球"),array("separator"=>" "));?>

<?php echo $form->error($model,'hobby');?>

<!--提交-->

<?php echo CHtml::submitButton('提交');?>

<?php

$this->endWidget();

?>

model层的代码如下:User.php

<?php

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

class User extends CActiveRecord{

//创建一个模型的对象 静态

public $password2;//非数据库的字段,但是在view中需要用到

public static function model($className = __CLASS__) {

return parent::model($className);

}

//返回当前数据表的名字

public function tableName() {

//parent::tableName();

return '{{user}}';//这样写可以省略前缀

}

//设置标签的显示名字

public function attributeLabels() {

return array(

"username"=>"姓名",

"password"=>"密码",

"password2"=>"确认密码",

"email"=>"邮箱",

"sex"=>"性别",

"grade"=>"年级",

"hobby"=>"爱好",

);

}

//验证表单域

public function rules() {

return array(

array("username","required","message"=>"用户名不能为空"),

array("password","required","message"=>"密码不能为空"),

//验证密码和确认密码

array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致"),

//验证邮箱

array("email","email","allowEmpty"=>false,"message"=>"邮箱格式不正确"),

//验证年级

array("grade","in","range"=>array(1,2,3),"message"=>"请选择年级"),

//验证爱好,使用自定义规则

array("hobby","checkHobby"),

);

}

//验证爱好

function checkHobby(){

$this->hobby;

$len= strlen($this->hobby);

if($len<3){

$this->addError("hobby","爱好至少为2个以上");

}

}

}

?>

control层的代码如下:

//信息添加 添加显示页面和添加处理使用同一个方法

public function actionAdd(){

$user=new User();

if(isset($_POST['User'])){

// foreach ($_POST['User'] as $k =>$v){

// $user->$k=$v;

// }

if(is_array($_POST['User']['hobby']))

$_POST['User']['hobby']= implode(",", $_POST['User']['hobby']);

//print_r($_POST['User']);

$user->attributes=$_POST['User'];

if($user->save()){

echo 'success';

}else{

echo 'error';

}

}

$this->renderPartial("new",array("model"=>$user));

}

其中,表单的自动验证,在model层实现,表单元素的名称与数据库中的字段名字一致,可设置错误信息进行提示。

希望本文所述对大家基于yii框架的PHP程序设计有所帮助。

标签yii,用户注册,表单,验证,实例,本文,实例,讲述了,yi

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号