CI 묻고 답하기

제목 POST 값이 안넘어오는 경우가 있나요?
글쓴이 Thriver 작성시각 2016/01/29 14:36:20
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 23810   RSS

어제 Form Validation 문제로 문의를 올렸었는데요...

찾아보니 결국 POST로 아예 값이 넘어오지 않는 경우이네요.

좀 황당한데 기본적인 Form 문을 써도 넘어오지를 않아서 문의를 드립니다.

혹시 기본 셋팅이 잘못되어서 그런 경우가 생길수 있나요?

 

Controller 코드는

 

public function tforms()
{
    $this->load->view('testcode/tforms');

}

public function rforms()
{
    $txt_string = $this->input->post('txt_string', TRUE);

    log_message('INFO', "txt_string=>[".$txt_string."]");

    $this->load->view('testcode/form_success_v');
}

 

View 쪽 코드는 

 

<html>
    <header>
        <h1></h1>
    </header>

    <body>
        <form method="post" action="<?php echo base_url('testcode/rforms');?>">
            <input type="text" name="txt_string" id="txt_string">

            <button type="submit" name="submit">SUBMIT</button>
        </form>
    </body>
</html>

로 완전히 기본적인 문장인데 POST 로 넘어옴는게 아예 없습니다.

Log를 찍어보니

 

INFO - 2016-01-29 14:48:44 --> Config Class Initialized

INFO - 2016-01-29 14:48:44 --> Hooks Class Initialized

DEBUG - 2016-01-29 14:48:44 --> UTF-8 Support Enabled

INFO - 2016-01-29 14:48:44 --> Utf8 Class Initialized

INFO - 2016-01-29 14:48:44 --> URI Class Initialized

INFO - 2016-01-29 14:48:44 --> Router Class Initialized

INFO - 2016-01-29 14:48:44 --> Output Class Initialized

INFO - 2016-01-29 14:48:44 --> Security Class Initialized

DEBUG - 2016-01-29 14:48:44 --> Global POST, GET and COOKIE data sanitized

INFO - 2016-01-29 14:48:44 --> Input Class Initialized

INFO - 2016-01-29 14:48:44 --> Language Class Initialized

INFO - 2016-01-29 14:48:44 --> Loader Class Initialized

INFO - 2016-01-29 14:48:44 --> Helper loaded: security_helper

INFO - 2016-01-29 14:48:44 --> Database Driver Class Initialized

INFO - 2016-01-29 14:48:44 --> Session: Class initialized using 'database' driver.

INFO - 2016-01-29 14:48:44 --> Controller Class Initialized

INFO - 2016-01-29 14:48:44 --> Helper loaded: form_helper

INFO - 2016-01-29 14:48:44 --> Helper loaded: url_helper

INFO - 2016-01-29 14:48:44 --> Form Validation Class Initialized

INFO - 2016-01-29 14:48:44 --> File loaded: /home/thriver/shop.local/application/views/testcode/tforms.php

INFO - 2016-01-29 14:48:44 --> Final output sent to browser

DEBUG - 2016-01-29 14:48:44 --> Total execution time: 0.0064

INFO - 2016-01-29 14:48:48 --> Config Class Initialized

INFO - 2016-01-29 14:48:48 --> Hooks Class Initialized

DEBUG - 2016-01-29 14:48:48 --> UTF-8 Support Enabled

INFO - 2016-01-29 14:48:48 --> Utf8 Class Initialized

INFO - 2016-01-29 14:48:48 --> URI Class Initialized

INFO - 2016-01-29 14:48:48 --> Router Class Initialized

INFO - 2016-01-29 14:48:48 --> Output Class Initialized

INFO - 2016-01-29 14:48:48 --> Security Class Initialized

DEBUG - 2016-01-29 14:48:48 --> Global POST, GET and COOKIE data sanitized

INFO - 2016-01-29 14:48:48 --> Input Class Initialized

INFO - 2016-01-29 14:48:48 --> Language Class Initialized

INFO - 2016-01-29 14:48:48 --> Loader Class Initialized

INFO - 2016-01-29 14:48:48 --> Helper loaded: security_helper

INFO - 2016-01-29 14:48:48 --> Database Driver Class Initialized

INFO - 2016-01-29 14:48:48 --> Session: Class initialized using 'database' driver.

INFO - 2016-01-29 14:48:48 --> Controller Class Initialized

INFO - 2016-01-29 14:48:48 --> Helper loaded: form_helper

INFO - 2016-01-29 14:48:48 --> Helper loaded: url_helper

INFO - 2016-01-29 14:48:48 --> Form Validation Class Initialized

INFO - 2016-01-29 14:48:48 --> txt_string=>[]

INFO - 2016-01-29 14:48:48 --> File loaded: /home/thriver/shop.local/application/views/testcode/form_success_v.php

INFO - 2016-01-29 14:48:48 --> Final output sent to browser

DEBUG - 2016-01-29 14:48:48 --> Total execution time: 0.0051

 

이렇게 나옵니다.

그런데 POST가 사라지는 경우가 있나요? 좀 황당해서....

해결방안이 있을까요?

 다음글 달력 (6)
 이전글 라이브러리 세션 로드에 관해 여쭙겠습니다. (9)

댓글

한대승(불의회상) / 2016/01/29 14:52:36 / 추천 0

xss 필터에 걸리면 사라질 수 있습니다.

아래 처럼 수정 하시고 테스트 해보세요.

// $this->input->post('txt_string', TRUE);
$this->input->post('txt_string'); // xss 필터를 끈다.

 

Thriver / 2016/01/29 15:48:16 / 추천 0

감사합니다.

xss 필터를 꺼도 마찬가지네요.

마치 POST 데이터값이 아예 넘어오지 못하는듯한 느낌이라서..ㅜㅜ

kaido / 2016/01/29 16:06:55 / 추천 0

혹시 모르니 

<button> 을 <input> 으로...

 

간혹 submit 을 안하고 페이지 이동을 시키는 경우가 있어서 저는 button 타입을 사용 안합니다

루비콘 / 2016/01/29 16:40:00 / 추천 0

제가 어디선가 들었는데 이번에 PHP 새로운 버전 업데이트 되면서 POST 값이 사라지는 경우가 있다고들었는데

자세한건 모르겠어요 한번 찾아보심이 어떠실지;;

한대승(불의회상) / 2016/01/29 16:45:59 / 추천 0

@루비콘 카더라 하는 소식을 휙 던지고 찾아 보세요라고 하시기 보다 그 문제가 발생한 PHP 버젼과 관련 자료의 출처를 정확히 알려 주시는게 좋겠어요.

만약 그게 사실이라면 PHP 언어에 대한 신뢰 자체가 흔들릴수 있는 소식이니까요.

루비콘 / 2016/02/02 11:10:52 / 추천 0

@불의회상 님 앞으로 조심하겠습니다.

자세히 찾아보니 윈도우 7, IE 11 버전에서 간혹 오류가 생긴다고 하는데

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=80416#c_80416

https://connect.microsoft.com/IE/feedback/details/927770/bug-in-ie-11 

http://php.net/manual/kr/language.variables.external.php 

배움이 짧아 찾으시는 정보가 맞으신지는 잘 모르겠지만 혹 참고 하시면 도움되실까 하여 좌표 남깁니다.

fnmeat / 2016/02/11 11:51:39 / 추천 0

브라우저의 http request 요청을 network capture 해서 확인해보시기 바랍니다.

데이터는 브라우저 -> (http) -> apache -> php -> ci 로 이동하는데 

$_POST 값이 없다고 얘기하신 것을 봐서는 브라우저 -> apache 에서 문제가 있을 것으로 보입니다.