pp

/************************样式**************************************/
<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');
	}
?>

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值