/************************样式**************************************/
<style type="text/css">
/*标签是否换行*/
form label {
font-size: 12px;
display: inline;
}
/*属性是否必填项,客户端根据model的rule方法而定*/
form span.required {
color: red;
}
/*校验出错时标签CSS样式*/
form .error label {
color: #FFCC33;
}
/*校验出错时输入框的CSS样式*/
form .error input {
background: #FEE;
border-color: #C00;
}
/*校验出错时错误信息的CSS样式,我们可以设置其display属性让其不换行。*/
form .errorMessage {
display: inline;
color: red;
font-size: 12px;
}
/*校验成功时标签CSS样式*/
form .success label {
color: #000000;
}
/*校验成功时输入框的CSS样式*/
form .success input {
background: #E6EFC2;
border-color: #C6D880;
}
</style>
<?php
/************************表单**************************************/
<? $aData = [1 => 'Football', 2 => 'Music', 3 => 'Game', 4 => 'basketball'];
$aSex = [1 => 'man', 2 => 'woman'] ?>
<? $form = $this->beginWidget('CActiveForm',
[
'enableAjaxValidation' => true,
'clientOptions' => ['validateOnSubmit' => true],
'action' => ['user/reg']
])?>
<?php $this->endWidget(); ?>
//表单挂件
<?= $form->label($models, 'test', ['class' => 'yiiLabel','id'=>null]) ?>
<?= $form->error($models, 'test', ['class' => 'yiiError','id'=>null]) ?>
<?= $form->passwordField($models, 'test', ['class' => 'yiiPassword','id'=>null]) ?>
<?= $form->textField($models, 'test', ['class' => 'yiiTextInput','id'=>null]) ?>
<?= $form->textArea($models, 'test', ['class' => 'yiiTextArea','id'=>null]) ?>
<?= $form->fileField($models, 'test', ['class' => 'yiiFileField','id'=>null]) ?>
<?= $form->checkBox($models, 'test', ['class' => 'yiiCheckBox','id'=>null]) ?>
<?= $form->listBox($models, 'test', $aData, ['class' => 'yiiListBox','id'=>null]) ?>
<?= $form->checkBoxList($models, 'test', $aData, ['class' => 'yiiCheckBoxList','id'=>null,'separator'=>' ']) ?>
<?= $form->radioButtonList($models, 'test', $aSex, ['class' => 'yiiRadioButtonList','id'=>null,'separator'=>' ']) ?>
<?= $form->dropDownList($models, 'test', $aData, ['class' => 'yiiDropDownList','id'=>null,'empty'=>'-请选择-']) ?>
/*************************活动记录*************************************/
class User extends CActiveRecord
{
public $password2;
public static function model($className = __CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return "{{user}}";
}
public function attributeLabels()
{
return [
'username' => '用户名',
'password' => '密 码',
'password2' => '确认密码',
'user_sex' => '性 别',
'user_qq' => 'qq号码',
'user_hobby' => '爱 好',
'user_xueli' => '学 历',
'user_introduce' => '简 介',
'user_email' => '邮 箱',
'user_tel' => '手机号码',
];
}
public function rules()
{
return array(
array('username', 'required', 'message' => '用户名必填'),
array('username', 'unique', 'message' => '用户名已经占用'),
array('password', 'required', 'message' => '密码必填'),
array('password2', 'compare', 'compareAttribute' => 'password', 'message' => '两次密码必须一致'),
array('user_email', 'email', 'allowEmpty' => false, 'message' => '邮箱格式不正确'),
array('user_qq', 'match', 'pattern' => '/^[1-9]\d{4,11}$/', 'message' => 'qq格式不正确'),
array('user_tel', 'match', 'pattern' => '/^13\d{9}$/', 'message' => '手机号码格式不正确'),
array('user_xueli', 'in', 'range' => array(2, 3, 4, 5), 'message' => '学历必须选择'),
array('user_hobby', 'check_hobby'),
array('user_sex,user_introduce', 'safe'),
);
}
function check_hobby()
{
$len = strlen($this->user_hobby);
if ($len < 3) $this->addError('user_hobby', '爱好必须选择两项或以上');
}
}
/*************************用户登录*************************************/
class LoginForm extends CFormModel
{
public $username;
public $password;
public $rememberMe;
public $verifyCode;
private $_identity;
public function rules()
{
return array(
array('username', 'required','message'=>'用户名必填'),
array('password', 'required','message'=>'密码必填'),
array('rememberMe', 'boolean'),
array('password','authenticate'),
array('verifyCode','captcha','message'=>'请输入正确的验证码'),
);
}
public function authenticate($attribute,$params)
{
if (!$this->hasErrors()) {
$this->_identity = new UserIdentity($this->username, $this->password);
if ($this->_identity->authenticate()) {
$duration = $this->rememberMe ? 3600 * 24 * 30 : 0; // 30 days
Yii::app()->user->login($this->_identity, $duration);
} else {
$this->addError('password', '用户名或密码错误');
}
}
}
public function attributeLabels()
{
return array(
'username'=>'用户名',
'password'=>'密 码',
'verifyCode'=>'验证码',
'rememberMe'=>'记住登录状态',
);
}
//UserIdentity
class UserIdentity extends CUserIdentity
{
public function authenticate()
{
$user_model = User::model()->find('username=:name',array(':name'=>$this->username));
if($user_model === null){
$this -> errorCode = self::ERROR_USERNAME_INVALID;
return false;
} else if ($user_model->password !== md5($this -> password)){
$this->errorCode=self::ERROR_PASSWORD_INVALID;
return false;
} else {
$this->errorCode=self::ERROR_NONE;
return true;
}
}
}
//用户显示
if(Yii::app()->user->getIsGuest()){
} else {
echo Yii::app()->user->name;
}
Yii::app()->user->logout();
$this->redirect('/');
}
//为后台登录管理员设置session名字前缀信息
Yii::app()->setComponents(array(
'user'=>array(
'stateKeyPrefix' =>'houtai',
'loginUrl'=>'./index.php?r=houtai/manager/login',
)
));
/***************************sesson cookie**************************************/
//设置session,通过session组件来设置
Yii::app()->session['username'] = "zhangsan";
//使用session
Yii::app()->session['username'],"<br />";
//删除一个session
unset(Yii::app()->session['useraddr']);
//删除全部session
Yii::app()->session->clear(); //删除session变量
Yii::app()->session->destroy(); //删除服务器的session信息
//设置cookie
$ck = new CHttpCookie('hobby','篮球,足球');
$ck -> expire = time()+3600;
//把$ck对象放入cookie组件里边
Yii::app()->request->cookies['hobby'] = $ck;
//访问cookie
Yii::app()->request->cookies['hobby'];
//删除cookie
unset(Yii::app()->request->cookies['sex']);
/**************************************路径别名****************************/
//设置路径别名
Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap');
//取路径别名
Yii::getPathOfAlias('webroot');
/****************************************过滤器*************************/
/*
* 在当前控制器实现用户访问的控制
*/
function filters() {
return array(
'accessControl',
);
}
/*
* show add update del 等方法在进行访问的时候需要用户登录系统
* 为具体方法被访问设置条件
*/
function accessRules() {
return array(
//用户访问控制扩展
//add 方法可以被无条件访问(无论登录与否都可以访问)
array(
'allow',
'actions'=>array('add'),
'users'=>array('*'),
),
//具体指定"用户"可以删除信息
//linken zhangsan lisi 这个三个用户都可以进行删除操作
array(
'allow',
'actions'=>array('del'),
'users' => array('linken','zhangsan','lisi'),
),
//匿名用户操作 ?
//有的控制器是匿名用户可以访问,已经登录系统用户是禁止访问的
//update 这个方法是匿名用户可以访问
array(
'allow',
'actions'=>array('update'),
'users'=>array('?'),
),
//show 必须是登录系统的用户来访问
array(
'allow',
'actions'=>array('show'),
'users'=>array('@'),
),
array(
'deny',
'users'=>array('*'),
),
);
}
/*************************************分页*****************************/
public function actionShow(){
$criteria = new CDbCriteria();
$count=Goods::model()->count($criteria);
$pages=new CPagination($count);
$pages->pageSize=10;
$pages->applyLimit($criteria);
$models = Goods::model()->findAll($criteria);
CLinkPager::actions();
$this->renderPartial('show', [ 'models' => $models, 'pages' => $pages]);
}
//分页挂件
<?php $this->widget('CLinkPager', [ 'pages' => $pages]) ?>
/*************************验证码*************************************/
//校验
array('verifyCode', 'captcha','message'=>'校验码错误,请重新输入'),
//挂件
<? $this -> widget('CCaptcha') ?>
//控制器
public function actions(){
return[
'captcha'=>array(
'class'=>'system.web.widgets.captcha.CCaptchaAction',
'width'=>75,
'height'=>30,
'minLength'=>4,
'maxLength'=>4,
)
];
}
/**************************配置项*******************************/
return array(
//配置使用的主题
'theme'=>'bootstrap',
//配置当前语言
'language'=>'zh_cn',
)
/****************************YII*******************************/
//使用Yii::app()调用相关属性、方法
echo Yii::app()->defaultController,"<br />";
echo Yii::app()->layout,"<br />";
echo Yii::app()->name,"<br />";
echo Yii::app()->charset,"<br />";
echo Yii::app()->getLayoutPath(),"<br />";
echo Yii::app()->request->getUrl(),"<br />";
echo Yii::app()->request->getHostInfo(),"<br />";
//取当前控制器,控制器方法
控制器:$this -> id ;
方法:$this->action->id ;
//记录时间
Yii::beginProfile('addgoods');
Yii::endProfile('addgoods');
<?php
//设置添加商品成功提示信息
Yii::app()->user->setFlash('success','添加商品成功');
//判断是否有提示信息
if(Yii::app()->user->hasFlash('success')){
echo Yii::app()->user->getFlash('success');
}
?>
pp
最新推荐文章于 2025-05-03 01:00:00 发布