webyjh 2011-12-28 07:38:06 3334次浏览 8条回复 0 0 0

UserIdentity.php

[attach]564[/attach] [attach]565[/attach]

  • 回复于 2011-12-28 07:51 举报

    大哥,能不能打代码帖出来?发图片的坏处很多。

    第一,不能复制,不能帮你测试。
    第二,看不清楚,而且这个配色你是不是自己感觉很帅?
    第三,非登录用户是看不到附件的,所以错过一些高手查看问题。
    第四,不利于SEO,本来有人遇到同样的问题,但是从搜索引擎搜索不到。
    第五,浪费服务器空间,你又不给偶赞助服务器,都是伦家自己花钱买的。

    鉴于以上缺点,请自觉把代码帖出来,供大家欣赏!

  • 回复于 2011-12-28 08:13 举报

    啊,我没想到有这么缺点啊,接受批评
    UserIdentity.php

    <?php
    class UserIdentity extends CUserIdentity {
        private $_id;
        
        public function authenticate() {        
            $_identity='guest';
            $username=strtolower($this->username);//$this->username为用户输入的用户名
            $user=Users::model()->find('LOWER(username)=?', array($username));//查库中是否有此用户
            if($user===null)//没有,返回无此用户错
                $this->errorCode=self::ERROR_USERNAME_INVALID;
            else if(!$user->validatePassword($this->password))//有,再验证密码
                    $this->errorCode=self::ERROR_PASSWORD_INVALID;//密码错误
                else {//密码正确
                    $this->_id=$user->id;                
                    if ($user->identity==='admin') {
                        $this->setState('identity', 'admin');//设置用户身份,管理员        
                    }else {
                        $this->setState('identity', 'user');//设置用户身份,普通用户
                     
                    }                
                    $this->errorCode=self::ERROR_NONE;
                }
    
            return $this->errorCode===self::ERROR_NONE;
        }
    
        public function getId() {
            return $this->_id;
        }
    }
    

    column3.php

    <?php $this->beginContent('//layouts/main'); ?>
    
    <table style="margin-top:3px;width:1000px;border:0;">
        <tr>
            <td style="width:5px;">&nbsp;</td>
    <!-- 左边栏 开始 -->         
            <td valign='top' style="width:210px;">            
        <!--左边栏的登录表单 开始-->            
    <?php $identity=Yii::app()->user->getState('identity');//取用户身份  ?>
    
    
    <table style="border:0;" cellpadding=0 cellspacing=0>
        <tr>
            <td>
                <!--如果是普通用户登录-->
                <?php if ($identity==='user') {?>
                <div style='background:url(<?php echo Yii::app()->request->baseUrl; ?>/images/t_login.jpg) no-repeat;width:210px;height:70px;'></div>
                <div class='side_content'>
                    <br />
                    <b><?php echo yii::app()->user->getName();?></b>,欢迎您回来! <?php echo CHtml::link('退出', array('site/logout'),array('style'=>'color:red;'));?><br />
    <br /><br />
                </div>
                <?php } ?>
    
                <!--如果是管理员登录了-->
    <?php if ($identity==='admin'): ?>
    <?php endif; ?>
    您好,管理员 
    
  • 回复于 2011-12-28 09:29 举报

    这样写应该没问题吧?

  • 回复于 2011-12-28 10:05 举报

    舰长英明神武啊

  • 回复于 2011-12-28 16:50 举报

    每个布局都要加
    <?php $identity=Yii::app()->user->getState('identity');//取用户身份 ?>
    感觉不太规范啊

  • 回复于 2011-12-28 16:51 举报

    您也V5啊,回答我们这些菜鸟好多问题了

  • 回复于 2011-12-29 09:03 举报

    规范可以不那么严格,用PHP模板又要MVC严格分层本来就是矛盾的,你要是觉得在视图里取不爽,可以在控制力取嘛

  • 回复于 2011-12-30 13:00 举报

    还是决定在视图里写,要不然每个控制器里用到就要写,麻烦啊

您需要登录后才可以回复。登录 | 立即注册