thinkphp3.x 에서 변수의 획득 과 여과 방법 에 대한 상세 한 설명

본 고의 실례 는 thinkphp3.x 에서 변수의 획득 과 여과 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
ThinkpHP 에서 변 수 를 사용 하고 변 수 를 걸 러 내 는 방법 을 배 웁 니 다.
웹 개발 과정 에서 저 희 는 시스템 변수 나 사용자 가 제출 한 데 이 터 를 자주 가 져 와 야 합 니 다.이런 변 수 는 데이터 가 복잡 하고 조심 하지 않 으 면 안전 위험 을 초래 하기 쉽 습 니 다.그러나 ThinkPHP 가 제공 하 는 변 수 를 잘 이용 하여 기능 을 얻 으 면 변 수 를 쉽게 가 져 오고 제어 할 수 있 습 니 다.
변수 가 져 오기
1.우선 변 수 를 얻 는 방법 에 대해 이야기 합 시다.
첫 번 째 방식:전통 적 인 획득 방식 은 개발 과정 에서 전통 적 인 방식 으로 각종 시스템 변 수 를 얻 을 수 있 습 니 다.예 를 들 어:

$id = $_GET['id'];//  get  
$name = $_POST['name'];//  post  
$value = $_SESSION['var'];//  session  
$name = $_COOKIE['name'];//  cookie  
$file = $_SERVER['PHP_SELF'];//  server  

전통 적 인 방식 으로 직접 얻 는 것 을 권장 하지 않 습 니 다.통 일 된 안전 처리 체제 가 없 기 때문에 나중에 조정 하면 고치 기 가 비교적 번 거 로 울 것 입 니 다.
두 번 째 방식:Action 류 가 제공 하 는 동적 방법 을 사용 합 니 다.
시스템 의 Action 클래스 는 시스템 변수 에 대한 강화 획득 방법 을 제공 합 니 다.GET,POST,PUT,REQUEST,SESSION,COOKIE,SERVER 와 GLOBALS 인 자 를 포함 하고 변수 값 을 가 져 오 는 것 외 에 변수 여과 와 기본 값 지원 도 제공 합 니 다.사용 방법 은 간단 합 니 다.Action 에서 다음 방법 만 호출 하면 됩 니 다.

$id = $this->_get('id');//  get  
$name = $this->_post('name');//  post  
$value = $this->_session('var');//  session  
$name = $this->_cookie('name');//  cookie  
$file = $this->_server('PHP_SELF');//  server  

다음 형식 으로 호출:
$this->방법 명("변수 명",["필터 방법"],["기본 값"])
지원 하 는 방법 이름:
_get GET 인자 가 져 오기
_post POST 인자 가 져 오기
_param 요청 형식 자동 판단 GET,POST 또는 PUT 인자 가 져 오기
_request 가 져 오기 request
_put PUT 매개 변수 가 져 오기
_세 션 획득$SESSION 매개 변수
_쿠키 획득$COOKIE 파라미터
_서버 획득$SERVER 파라미터
_globals$GLOBALS 인자 가 져 오기
변수 이름:(필수)가 져 올 시스템 변수의 이름 입 니 다.
필터 방법:(선택 가능)내 장 된 함수 나 사용자 정의 함수 이름 을 사용 할 수 있 습 니 다.지정 되 지 않 으 면 기본 html specialchars 함수 로 안전 한 필터 링 을 할 수 있 습 니 다(DEFAULTFILTER 매개 변수 설정)매개 변 수 는 앞의 방법 명 에서 얻 은 값 입 니 다.
호출 하면:

$this->_get("name");

최종 호출 결 과 는 html specialchars($GET["name"]),필터 방법 을 변경 하려 면 다음 을 사용 할 수 있 습 니 다.

$this->_get("name","strip_tags");

기본 값:(선택 가능)가 져 올 매개 변수 가 존재 하지 않 는 상황 에서 설정 한 기본 값 입 니 다.예 를 들 어:

$this->_get("id","strip_tags",0);

하면,만약,만약...GET["id"]가 존재 하지 않 으 면 0 으로 돌아 갑 니 다.
기본 값 이 설정 되 어 있 지 않 으 면 시스템 은 기본적으로 NULL 로 돌아 갑 니 다.
다른 방법의 용법 은 유사 하 다.
차이 가 크 지 않 은 것 같 지만 뚜렷 한 장점 이 있 습 니 다.만약 에 제 가 이러한 변 수 를 통일 적 으로 걸 러 내 거나 변경 해 야 한다 면 변수 가 가 져 온 코드 를 수정 하지 않 고 프로젝트 프로필 에 설정 파 라 메 터 를 추가 하면 됩 니 다.예 를 들 어:

'DEFAULT_FILTER'=>'strip_tags'

동적 으로 가 져 온 모든 변 수 를 strip 사용 합 니 다.tags 방법 은 통일 적 으로 여과 할 수 있 고 여러 개의 여과 방법 도 지원 할 수 있 습 니 다.예 를 들 어:

'DEFAULT_FILTER'=>'strip_tags,htmlspecialchars'

striptags 필 터 를 한 다음 html specialchars 필 터 를 진행 합 니 다.
변 수 를 가 져 올 때 사용자 정의 필터 방법 이 필요 하 다 면 다음 과 같이 변경 할 수 있 습 니 다.

$name = $this->_post('content','trim,strip_tags');
//   post     

프로젝트 설정 에 통 일 된 변수 필터 방법 을 설정 하 였 으 나 일부 변 수 를 필터 하지 않 으 려 면:

$name = $this->_post('id','',0);

만약 당신 의 인자 가 여러 제출 방식 에서 나 올 수 있다 면 을 사용 할 수 있 습 니 다.param 방법 으로 더 쉽게 얻 을 수 있 습 니 다.예 를 들 어:

$this->_param('id');

현재 get 방식 으로 제출 할 때 같은 효 과 를 가 집 니 다.

$this->_get('id');

현재 post 방식 으로 제출 할 때 같은 효 과 를 가 집 니 다.

$this->_post('id');

put 방식 으로 제출 하면,

$this->_put('id');

그 장점 은 자 연 스 럽 게 뚜렷 하 다.같은 방법 으로 서로 다른 제출 유형의 변 수 를 받 아들 일 수 있 고 수 동 으로 너무 많은 판단 을 하지 않 아 도 서로 다른 파 라 메 터 를 얻 을 수 있다.
2.URL 매개 변수 가 져 오기
어떤 경우 에 우 리 는 URL 매개 변 수 를 얻 는 특수 한 수요 가 있 습 니 다.일반적으로 URL 매개 변 수 를 얻 는 것 은 get 변 수 를 사용 하 는 방식 으로 충분 하지만 우리 가 맞 춤 형 URL 을 사용 하거나 경로 가 있 는 상황 에서 URL 의 매개 변 수 는 규칙 적 이지 않 을 수 있 습 니 다.이 럴 때 우 리 는 다른 방식 으로 얻 을 수 있 습 니 다.
예 를 들 어 현재 URL 주 소 는:
http://localhost/index.php/news/hello_world/thinkphp
우 리 는 그 중의 인 자 를 가 져 오 려 고 합 니 다.사용 할 수 있 습 니 다:

$this->_param(0); //   news
$this->_param(1); //   hello_world
$this->_param(2); //   thinkphp

하지만param(숫자)방식 의 변 수 를 가 져 옵 니 다.PATHINFO 모드 URL 주소 만 유효 합 니 다.
변수 필터
앞에서 우 리 는 Action 류 가 제공 하 는 방법 으로 변 수 를 얻 고 여과 하 는 방법 을 알 게 되 었 으 나 이러한 동적 방법 을 호출 하지 않 은 전제 에서 우 리 는 어떻게 데 이 터 를 여과 합 니까?
ThinkpHP 는 데이터 필터 작업 을 위 한 두 가지 방법 을 제공 합 니 다.
첫째:전역 변수 필터 설정
이러한 상황 은 여러 번 사용 할 수 있 는 상황 에 대한 것 입 니 다.전역 필터 설정 을 통 해 작업 을 간소화 할 수 있 습 니 다.예 를 들 어 프로젝트 프로필 에 파 라 메 터 를 추가 할 수 있 습 니 다.

'VAR_FILTERS'=>'strip_tags'

전역 get 과 post 변 수 를 필터 합 니 다.다른 유형의 시스템 변 수 는 스스로 필터 해 야 합 니 다.
둘째:데이터 베 이 스 를 쓰기 전에 변 수 를 필터 합 니 다.
만약 변수 데 이 터 를 데이터베이스 에 쓰 려 고 한다 면 데이터 베 이 스 를 쓰기 전에 filter 방법 으로 데 이 터 를 안전하게 걸 러 낼 수 있 습 니 다.예 를 들 어:

$this->data($data)->filter('strip_tags')->add();

add 방법 을 실행 하기 전에$data 데 이 터 를 strip 합 니 다.tags 필터 처리.그러나 이 방식 아래 filter 방법 은 여러 개의 여과 방법 을 지원 하지 않 습 니 다.
총화
ThinkpHP 를 사용 하면 시스템 변 수 를 쉽게 얻 고 걸 러 낼 수 있 습 니 다.개발 능력 이 현저히 향상 되 었 습 니 다.힘 내 라,뒤에 도 길 을 어떻게 사용 하 는 지 설명 할 것 이다.
PS:본 사이트 의 포맷 미화 도 구 를 추천 합 니 다.앞으로 개발 에 사용 할 수 있 을 것 이 라 고 믿 습 니 다.
php 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/phpformat
JavaScript 코드 미화/압축/포맷/암호 화 도구:
http://tools.jb51.net/code/jscompress
온라인 XML 포맷/압축 도구:
http://tools.jb51.net/code/xmlformat
JSON 코드 포맷 미화 도구:
http://tools.jb51.net/code/json
온라인 XML/JSON 상호 변환 도구:
http://tools.jb51.net/code/xmljson
json 코드 온라인 포맷/미화/압축/편집/변환 도구:
http://tools.jb51.net/code/jsoncodeformat
sql 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/sqlcodeformat
thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.ThinkpHP 입문 강좌,ThinkPHP 상용 방법 총화,PHP 에서 쿠키 사용법 요약,smarty 템 플 릿 입문 기초 튜 토리 얼PHP 템 플 릿 기술 총화.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기