CI 묻고 답하기

제목 안녕하세요 CI 4를 이용중입니다. 다름이 아니라 Post 전송 오류관련 질문드립니다.
카테고리 CI 4 관련
글쓴이 꼬리 작성시각 2020/10/21 18:14:48
댓글 : 13 추천 : 0 스크랩 : 0 조회수 : 16314   RSS

폼에서 POST 값을 전송하여 컨트롤러에서 받아 사용하려 합니다.

일단 먼저 코드터 보여드리겠습니다.

뷰 부분이구요

   <!--<form method="get" action="login">-->
                                        <?php
                                        helper('form');
                                        echo form_open('login/');
                                        ?>
                                        <div class="form-group">
                                            <label for="user_id">아이디</label>
                                            <input type="text" class="form-control" name="user_id" id="user_id" required="" placeholder="아이디를 입력하세요.">
                                        </div>
                                        <div class="form-group">
                                            <label for="user_password">비밀번호</label>
                                            <input type="password" class="form-control" name="user_password" id="user_password" required="" placeholder="비밀번호를 입력하세요.">
                                        </div>
                                        <div class="mt-3 text-right">
                                            <button class="btn btn-primary w-sm waves-effect waves-light" type="submit">로그인</button>
                                        </div>
                                        <?php
                                        echo form_close();
                                        ?>
                                    <!--</form>-->

 

컨트롤러 부분입니다.


    public function show_login() {
//        $user_id = $request->getVar('foo');
//        
//        
        echo $this->request->getMethod();
        print_r($_POST);
        print_r($_GET);

        $data = [
            'title_meta' => view('partials/title-meta', ['title' => '로그인']),
        ];


        return view('Index/login', $data);
    }

 

폼 서브밋시 자기 자신 페이지로 서브밋하여 검증하는 형태입니다.

폼 헬퍼를 이용해서 post 방식의 폼이 생성된건 확인 할 수 있습니다.

하지만 폼 내부에 있는 태그들이 컨트롤러에서 print_r($_POST) 로 확인이 안되더군요...

그래서 GET방식도 안되나 싶어서 폼을 get으로 변경해서 보냈을 땐 잘 보내집니다.

처음엔 폼헬퍼가 아닌 그냥 폼을 만들어서 사용했을때 안되서 폼 헬퍼를 이용했지만 결과는 마찬가지구요...

이것저것 해봤지만 왜 post만 안되는지 모르겠습니다 ㅠㅠ

 

 다음글 쿠키 관련 질문 드립니다. (2)
 이전글 파일 업로드 관련 권한 질문입니다 (4)

댓글

테러보이 / 2020/10/21 19:26:21 / 추천 0
혹시 라우터 걸려있는페이지인가요?
한대승(불의회상) / 2020/10/21 19:43:39 / 추천 0
$this->request->getPost()

사용하시면 됩니다.

아래 메뉴얼 확인해 보세요.

http://ci4doc.cikorea.net/incoming/incomingrequest.html

꼬리 / 2020/10/22 10:01:37 / 추천 0

라우터에 걸려있는 페이지 맞구요 ㅠㅠ

메뉴얼 대로 getPost는 사용해봤지만 나오지 않습니다 ㅠㅠ

PureAni / 2020/10/22 10:21:44 / 추천 0

CI 안거치고 그냥 쌩 PHP에서 POST가 넘어오나요?

CI 안거치고 POST를 했을때 값이 넘어오면, CI쪽이 문제일 수 있지만, 만약에 CI가 아닌 그냥 쌩 PHP에서도 POST시 값이 안넘어오면 서버쪽 문제일 수 있습니다.

꼬리 / 2020/10/22 10:24:13 / 추천 0

서버쪽 문제일까봐 CI 외부에서 post 진행했을땐 값이 잘 넘어왔습니다.

현재 위의 코드상에는 v -> c 로 post 값 넘기는 부분입니다...

자기 자신에게 서브밋하여 c 부분에서 받는건데... post만 안넘어오네요...

정상적으로 CI 거쳤는데... 흑흑..

 

한대승(불의회상) / 2020/10/22 10:27:29 / 추천 0
@꼬리 일반 php에서 $_POST로 넘어 온다면 서버는 문제는 아닙니다.
변종원(웅파) / 2020/10/22 10:32:13 / 추천 0

아래 글 참고해서 방식을 변경해보세요. 특정 서버나 환경의 영향으로 post 데이터가 다른 형태로 넘어올 경우가 있습니다.

https://jonnung.dev/php/2015/08/06/php-use-http-raw-post-data/

PureAni / 2020/10/22 10:43:35 / 추천 0

Route의 설정과 CI 버전이 몇버전인지 모르겠지만, CI 포럼에 관련된 내용이 있기는 하네요.

적중하는 상황인지는 모르겠지만, 한번 확인해보세요.

Router 에 변수가 있는경우 $_POST와 $_FILE의 값이 사라졌는데, 변수를 제거하고 날려보니 살아났다는 글입니다.

https://forum.codeigniter.com/thread-75284.html

꼬리 / 2020/10/22 11:45:56 / 추천 0

모두들 감사합니다 

참고해서 진행해보도록 하겠습니다!

한대승(불의회상) / 2020/10/22 13:28:01 / 추천 0
<form>태그의 method를 post로 바꿔보세요.
테러보이 / 2020/10/23 10:32:13 / 추천 0

혹시 라우터에 post를 받을수있게 처리하셨나요?



http://ci4doc.cikorea.net/incoming/routing.html#id28

꼬리 / 2020/10/26 09:59:35 / 추천 0

다들 많은 의견 감사합니다

문제는 한번더 리다이렉트 시키는 현상이 있어서 config 수정으로 해결 완료했습니다..!!

변종원(웅파) / 2020/10/26 17:16:45 / 추천 0
스무고개의 끝이 좀 허무하네요. ^^