#求助#权限出问题了,但是代码没问题啊

我在一个业务的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.

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

代码完全没动过么?是不是集成的Control里有其他设定,比如srbac.

还有你的代码真心亮瞎了我的狗眼,直接传model过去不就好了么。

静态函数再传rid,直接写成非静态方法不久好了么……

id还是放在get函数里比较好吧,查询这种东西还是给别人一个可以转发的地址比较合适吧?

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

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

谢谢!

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