Yii Framework Forum: #求助#权限出问题了,但是代码没问题啊 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

#求助#权限出问题了,但是代码没问题啊 关于自带权限的问题 Rate Topic: -----

#1 User is offline   world_voice 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 17-March 12

Posted 06 December 2012 - 06:33 AM

我在一个业务的Controller里是用filter里写权限控制的
/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
		);
	}



        /**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('chaxun','overlookimg'),
				'users'=>array('*'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

里面的一个chaxun业务是是这样写的
 /*
         * 寝室查询  通过寝室号
         * 需要返回 寝室所属学院+寝室状况+寝室最近三周的分数+最后一次的评语
         */
	public function actionChaxun()
	{   
            if(isset($_POST['roomid'])&&$_POST['roomid']!='')
            {
                $rId= trim(strval($_POST['roomid']));     //将查询的寝室号赋给一个字符
                if(Room::model()->verificationRoomId($rId)) //如果数据库里存在该寝室号
                {
                    $orgid=$rId;
                    $academyName= Room::model()->getAcademyId($rId);     //通过寝室号得到学院
                    $rStatus= Room::model()->getRoomStatus($rId);       //通过寝室号得到寝室现在的状态
                    //$academyName=  Academy::model()->getAcademyName($acadId);   //通过寝室号得到学院名称
                    $roomScores= RoomScore::model()->getLastRoomScores($rId);    //通过寝室号得到寝室的最近三周的分数和评语,返回的是数组
                }else{
                    $orgid=$rId;
                    //$acadId= '不存在该宿舍信息';     //通过寝室号得到学院号
                    $rStatus= '';       //通过寝室号得到寝室现在的状态
                    $academyName=  '不存在该宿舍信息';   //通过寝室号得到学院名称
                    $roomScores= '';    //通过寝室号得到寝室的最近三周的分数和评语,返回的是数组
                }
            }else{
                $orgid='';
                //$acadId= '';     //通过寝室号得到学院号
                $rStatus= '';       //通过寝室号得到寝室现在的状态
                $academyName=  '';   //通过寝室号得到学院名称
                $roomScores= '';    //通过寝室号得到寝室的最近三周的分数和评语,返回的是数组
            }
            
		$this->render('chaxun',array(
                    'dataOrgId'=>$orgid,                //原来的查询寝室号
                    'dataAcademyName'=>$academyName,       //学院名称
                    'dataRoomStatus'=>$rStatus,         //寝室的现在的状况
                    'dataRoomScores'=>$roomScores,      //得到的死寝室最近三周的分数和评语,数组
                ));
	}

问题的关键是我放在本地的phpnow里执行是ok的,但是放到服务器(linux)里就出现问题了。当查询的时候就跳到系统登录页面里,登录后查询就出现如下提示:
[b]CHttpException[/b]

You are not authorized to perform this action.


很想知道是怎么回事?求助。
0

#2 User is offline   jarlyyn 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 01-November 12

Posted 07 December 2012 - 12:32 AM

代码完全没动过么?是不是集成的Control里有其他设定,比如srbac.
还有你的代码真心亮瞎了我的狗眼,直接传model过去不就好了么。
静态函数再传rid,直接写成非静态方法不久好了么……
id还是放在get函数里比较好吧,查询这种东西还是给别人一个可以转发的地址比较合适吧?
0

#3 User is offline   world_voice 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 17-March 12

Posted 07 December 2012 - 12:32 AM

对不起啊。当我把yii 的debug开起来后,按照提示一步步的查下去,就发现了错误了。原来是我自己本机的数据库中某个属性和服务器上的不一样,然后我就找到问题的关键了。

不过我有新的问题,关于php的错误提示(就是变量没声明直接用的错误提示),除了在变量前加@,或修改php.ini里的error_reporting外,还有其他解决方法吗?
谢谢!
0

#4 User is offline   world_voice 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 17-March 12

Posted 07 December 2012 - 12:35 AM

View Postjarlyyn, on 07 December 2012 - 12:32 AM, said:

代码完全没动过么?是不是集成的Control里有其他设定,比如srbac.
还有你的代码真心亮瞎了我的狗眼,直接传model过去不就好了么。
静态函数再传rid,直接写成非静态方法不久好了么……
id还是放在get函数里比较好吧,查询这种东西还是给别人一个可以转发的地址比较合适吧?

谢谢指教,我是菜鸟。。我会努力的。谢谢你的指教。
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users