2014-10-31 21 views
1

林在警予新后没有用户和更改菜单,这是我的问题:Yii的认证,如果日志中

  1. 如何建立会话检测,如果用户无法登录。
  2. 用户登录后显示并隐藏div。
  3. 尚未登录隐藏div。

菜单栏/导航栏:

 <div class="rightPane"> 
<div class="menuWrapper"> 
    <div class="menuItem"> 
     <a href="#"><?php echo Yii::t('labels', 'HOME'); ?></a> 
    </div>       
</div> 
<div class="menuWrapper"> 
    <div class="menuItem"> 
     <a ><?php echo Yii::t('labels', 'CONTACT'); ?></a> 
    </div>       
</div> 
<div class="menuWrapper"> 
    <div class="menuItem"> 
     <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a> 
</div>     
</div> 
<div class="menuWrapper"> 
    <div class="menuItem"> 
     <a href="<?php echo Yii::app()->baseUrl ?>/register"><?php echo Yii::t('labels', 'REGISTER'); ?></a> 
    </div>       
</div> 
<div class="menuWrapper"> 
     <div class="menuItem"> 
      <a href="#" ><?php echo Yii::t('labels', 'signout'); ?></a> 
     </div>       
</div> 

在这里,我的日志后,希望在“登录”和“注册”应该是隐藏,然后显示一个新的div为“退出”

在代码登录从控制器:

$username = $_POST['username']; 
$userpass = $_POST['userpass']; 


$record=Games::model()->findByAttributes(array('email'=>$username)); 

if($record===null){ 
    //somethings 
}else if($this->checkPassword($record->password,$userpass)){ 
    //somethings 

}else 
{ 
    $this->_id=$record->id; 
    $this->_email=$record->email; 

    Yii::app()->user->setState('id', $record->id); 
    Yii::app()->user->setState('email', $record->email); 

    //go to somethings 
} 
+0

读取和从上到下HTTP明白这一点://www.yiiframework.com/doc/guide/ – gvgvgvijayan 2014-10-31 06:05:23

+0

学习如何使用netbeans ide与yii插件https://netbeans.org/features/php/ – gvgvgvijayan 2014-10-31 06:40:44

+0

顺便说一句,使用全帽标签被认为是一种很好的做法正常(a-la“联系人”)文本并设置css“文本转换:大写”。 – Cthulhu 2014-10-31 07:06:13

回答

0
  1. 如何设置会话以检测用户是否未登录。

不需要会话。

<?php if(Yii::app()->user->isGuest): ?> 
     <?php echo 'Hi Guest'; ?> 
    <?php endif; ?> 
  • 用户之后登录显示和隐藏的div。 & 3.尚未登录隐藏div。

    <?php if(!Yii::app()->user->isGuest): ?> 
        <div class="menuWrapper"> 
         <div class="menuItem"> 
         <a ><?php echo Yii::t('labels', 'CONTACT'); ?></a> 
         </div>       
        </div> 
    <?php else: ?> 
    
    <div class="menuWrapper"> 
        <div class="menuItem"> 
         <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a> 
        </div>     
    </div> 
    <div class="menuWrapper"> 
        <div class="menuItem"> 
         <a href="<?php echo Yii::app()->baseUrl ?>/register"> 
         <?php echo Yii::t('labels', 'REGISTER'); ?></a> 
        </div>       
    </div> 
    <?php endif; ?> 
    
  • +0

    1.不工作...我粘贴在页面顶部...登录后仍然回声... 2.为什么闪光消息? 2类似于3 3.工作但登录后没有显示... – TheSmile 2014-10-31 06:27:53

    +0

    现在检查点1的作品,对于点2我认为你喜欢向用户显示通知或者其他你喜欢做的事情请详细张贴。对于第3点无法理解你想说什么。 – gvgvgvijayan 2014-10-31 06:34:14

    +0

    '点1->'我没有说第1点的工作,登录/没有登录也回声。 '点2->'我的意思是登录显示“注销”隐藏“登录”和“注册”...我提到了问题。 '点3->'好的,它的工作。但登录后,我需要再次点2。 – TheSmile 2014-10-31 06:49:48

    0

    ,我发现我的第2点的答案:使用用户> ID(原因我没有使用原来提供的登录控制器)

     <?php if(!Yii::app()->user->id){ ?> 
        <div class="menuWrapper"> 
         <div class="menuItem"> 
          <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a> 
        </div>     
        </div> 
        <div class="menuWrapper"> 
         <div class="menuItem"> 
          <a href="<?php echo Yii::app()->baseUrl ?>/register"><?php echo Yii::t('labels', 'REGISTER'); ?></a> 
         </div>       
        </div> 
        <?php }else{ ?> 
        <div class="menuWrapper"> 
         <div class="menuItem"> 
          <a href="#" ><?php echo Yii::t('labels', 'signout'); ?></a> 
         </div>       
        </div> 
    <?php } ?>