질문 Q #17796
$config['csrf_protection'] = TRUE; 했을 경우 언제나 form_open()사용해야 되는건가요?
정수리 2017-06-02 09:14:30

메뉴얼 보고도 이해가 되지 않는 부분이 있을 글을 올리게 되었습니다.

 

$config['csrf_protection'] =  TRUE 설정했을 경우

 

폼을 생성할 때 언제나  form_open()를 사용해서 폼을 만들어야 하는건가요?

 

$config['csrf_protection'] =  TRUE 설정을 한후

 

form_open을 통해 폼을 만들면 hidden 필드가 생기는데

 

이 필드가 있어야 폼이 정상적으로 넘어 가는것 같더라구요;;

 

form_open으로 form을 만들경우 언제나 post 형식으로 만들어지기에

 

웹페이지에서 폼을 넘긴 후 뒤로가기 버튼을 누르면 문서가 만료되었다는

 

오류가 떠서 여간 불편하네요;; 

 

post로 넘겨야하는 부분도 있지만 get로 넘겨도 될 부분이 있어서 

 

그런데 form_open으로는 get형식으로 폼을 만들수 없을까요??

 

메뉴얼에서 봐보니 속성을 정할때 method를 정하는 부분이 없더라구요,

답변 2
#1 전상민 2017-06-02 09:47:46

csrf_protection을 사용한다고 해서 form_open 함수 사용이 필수는 아닙니다.

단지 히든값을 만들어 줄 뿐이에요.

form 태그를 직접 작성할 경우엔 히든 필드에 get_csrf_token_name(), get_csrf_hash() 이 함수들을 이용해서 값을 심어주면 됩니다.

http://www.ciboard.co.kr/user_guide/kr/libraries/security.html

 

$this->load->helper('form');
echo form_open('form_name', array('method'=>'GET'));

 

#2 정수리 2017-06-02 11:43:41

@전상민

아 form함수는 단지 히든값만 만들어 주는 것이였군요 ㅎㅎ

답변을 통해 이해 되었습니다. 감사합니다