이 글에서는 사용자가 PHP 백그라운드에서 메소드 인스턴스를 직접 입력하는 것을 방지하는 방법을 소개합니다. 필요한 친구가 참고할 수 있습니다.
1) BaseController 컨트롤러를 생성하고 Controller에서 상속합니다(백그라운드의 모든 작업은 BaseController를 상속해야 함).
BaseController에 추가:public function checkLogin() { if (Yii::app()->authority->isLogin() == Yii::app()->authority->getStatus('NOTLOGIN')) { $url = $this->createUrl('user/login'); if (Yii::app()->request->isPostRequest && Yii::app()->request->isAjaxRequest) { echo json_encode(array('code' => -101, 'message' => '用户未登录。', 'callback' => 'window.location="' . $url . '";')); } else if (Yii::app()->request->isAjaxRequest) { echo '<script language="javascript">window.location="' . $url . '";</script>'; } else { $this->redirect($url); } exit; } return true; }
<?php /** * 权限检查组件 */ class Authority extends CComponent { private $NOTLOGIN = -1; private $FAILED = -2; private $PASS = 1; public function init() { } /** * 检查是否登陆 * @return boolean */ function isLogin() { return isset(Yii::app()->session['user']) ? $this->PASS : $this->NOTLOGIN; } /** * 获取状态值 * @param string $name * @return int */ public function getStatus($name){ return $this->$name; } }
php에서 smtp를 사용하여 첨부 파일을 지원하는 이메일을 보내는 방법
위 내용은 PHP 백엔드에서 사용자가 직접 입력하는 코드 분석을 피하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!