PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2014/07/29 07:21:53
Name 포포탄
Subject [질문] codeigniter의 세션관련 질문입니다.
지난번 좋은 답변 주신분들 먼저 감사하다는 말씀 드립니다.

사이트를 하나 코딩하고 있는데, 세션관련해서 자꾸 애를 먹어서 질문을 남깁니다.

이메일과 비번을 치고 로그인을 하면 로그인이 되고 세션쿠키와 DB 모두 작성이 되는데, 컨트롤러 부분에 기입한
'nickname' => $result->nickname
을 넣으면 다이렉션한 주소로 넘어가고, 로그인 했을 때, 뷰에서 로그인 시 출력하도록 한 로그아웃 버튼이라던가 환영메세지라던가가 출력이 되지 않습니다. 그리고 화면도 로그인하지 않은 것과 같은 상태 그대로 유지되구요. 쿠키와 DB는 마찬가지로 모두 작성되는데 말이죠.

이게 또
'password' => $result->password
와 같이 로그인 시에 입력한 정보를 세션에 담으라고 코딩하면 신기하게 로그인이 잘 됩니다. -_-;


[한마디로 정리하면, 세션데이터에 로그인 시 기입하지 않은 정보를 담으려고 하면 로그인이 안되는 증상이네요. ]


하도 답답해서 교재를 보고 똑같이 페이지를 만들어서 해보는데도 안되니 미쳐버리겠네요... ㅠㅠ

차라리 오류메세지를 뿜어내면 마음이 편할텐데 말이죠...

도와주시면 감사하겠습니다.

아래는 코드의 일부입니다.

autoload.php 파일에 form헬퍼, 라이브러리에 session, database 로드해 둔 상태입니다.
이를 이용하는 다른 페이지는 또 잘 작동하는 것 보니 헬퍼나 라이브러리 로드문제는 아닌 것 같구요..


컨트롤러 부분입니다.
        public function login()
        {
                $this->load->library('form_validation');
                $this->load->helper('alert');

                $this->form_validation->set_rules('email', '이메일', 'required|valid_email');
                $this->form_validation->set_rules('password', '비밀번호', 'required');

                echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

                if( $this->form_validation->run() == True )
                {
                        $auth_data = array(
                                'email' => $this->input->post('email', TRUE),
                                'password' => $this->input->post('password', TRUE)
                                );

                        $result = $this->auth_m->login($auth_data);

                        if($result)
                        {
                                $newdata = array(
                                        'logged_in' => TRUE,
                                        'email' => $result->email,
                                        'nickname' => $result->nickname
                                        );

                                $this->session->set_userdata($newdata);

                                alert('로그인 되었습니다.', '/sinabro');
                                exit;
                        }
                        else
                        {
                                alert('이메일 주소나 비밀번호를 확인해 주세요.');
                                exit;
                        }
                }
                else
                {
                        $this->load->view('auth/login_v');
                }
        }



모델부분입니다.


        function login($auth)
        {
                $sql = "SELECT `email`, `nickname` FROM `users` WHERE email = '".$auth['email']."' AND password = '".$auth['password']."' ";
                $query = $this->db->query($sql);

                if( $query->num_rows() > 0 )
                {
                        return $query->row();
                } else {
                        return FALSE;
                }
        }

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
14/07/29 11:47
수정 아이콘
쿼리에 칼럼과 테이블명의 주위에 `가 들어가는게 맞는지요?
Leeroy_Jenkins
14/07/29 11:52
수정 아이콘
쿼리는 문제가 없는거같은데.. 혹시 암호를 sql password 처리 안하고 그냥 넣고 계신가요? 보통은 password('암호')로 찾는게 일반적이라..

그리고 로그인에 관련된 쿼리는 왠만하면 [email = ? and password = password(?)] 이런식으로 처리해주시고 [$query = $this->db->query($sql, array($email, $pwd)); ] 이런식으로 처리해주시는게 좋습니다. sql injection 방어가 되거든요. 뭐 꼭 로그인 아니더라도 모든 model문은 저렇게 작성해주시는게 편하고 관리하기도 좋고.. 뭐 그렇습니다.

음.. 그리고 view쪽은, 저는 왠만하면 controll쪽에선 많은 작업을 시키지 않고 view쪽은 controll에서 넘어온 데이터가지고 직접 만지는 편이라.. 예를들면 로그인 된 사람만 보여질 데이터가 있다면 view html 단에서 <? if ($this->member_id) { echo 'blahblah'; } ?> 이렇게 삽입하는 편이라 뭐라 말씀을 못드리겠네요.

아 그리고 쿼리문을 $sql = "SELECT `email`, `nickname` FROM `users` WHERE email = '".$auth['email']."' AND password = '".$auth['password']."' "; 이렇게 작성하셨는데,

$sql = "SELECT email, nickname FROM users WHERE email = ? AND password = ? "; 이렇게 작성하시는게 맞습니다. 지금보니 테이블명과 컬럼에 ' 가 붙어있는데 안쓰셔도 되요.. 아니 쓰면 안될꺼같은데-.-;; 저렇게 써본적이 없어서 모르겠네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
67849 [질문] JAVA 간단한 질문입니다. [2] Riffrain1192 15/09/06 1192
63119 [질문] jquery 책 추천받습니다. [2] 포도사과2473 15/06/26 2473
62125 [질문] 게임 기획 지망생 노트북 구매 5개 모델 중 추천을 받고싶습니다. [2] 포도2164 15/06/12 2164
59967 [질문] 인상깊었던 영상을 찾습니다. 오큘러스904 15/05/14 904
59822 [질문] 오늘 팝업 광고 노출 문제 격으신분 계신가요? [2] homy3111 15/05/12 3111
58505 [질문] 코딩용 노트북 추천 부탁드립니다. [17] 클로로 루시루플18316 15/04/23 18316
57684 [질문] USB 에 있는 파일을 자동으로 메일로 보내는 프로그램 없을까요? [2] 화이트데이1439 15/04/11 1439
53808 [질문] 코딩 연습 및 실력 늘리는 방법 [4] iPhone62925 15/02/14 2925
53637 [질문] 코딩 배우기 [11] roastedbaby2556 15/02/11 2556
53267 [질문] 삼성 scsa요즘 어떤가요?+문과 프로그래밍 [7] iPhone67278 15/02/06 7278
49094 [질문] 무명 개발자도 '스팀' 인디게임 카테고리 발매할 수 있나요? [2] 츄지Heart1353 14/12/09 1353
48984 [질문] Ctrl이나 Alt 역할을 하는 페달 같은게 있을까요? [4] Crystal Castles1286 14/12/08 1286
48782 [질문] [자바] 이클립스 단축키 관련 질문입니다. [4] Jannaphile2201 14/12/04 2201
47886 [질문] [C++] 과제하다가 발암에 걸려 질문드립니다. [14] 화이트데이2136 14/11/23 2136
47858 [질문] [C++] 버블 정렬 코딩 잘못된 부분좀 봐주세요ㅠㅠㅠ. [2] 삭제됨852 14/11/23 852
47207 [질문] 컴퓨터 조립 견적 조언 부탁드립니다.(w/ GTX 970) [4] Zwei1525 14/11/14 1525
46925 [질문] NC 소프트 인적성 검사 질문입니다. [4] 레이미드10812 14/11/11 10812
46502 [질문] 태블릿 PC 고민중이에요~ [6] 에루베루미루2122 14/11/05 2122
44859 [질문] 비전공자가 모바일 기기 코딩 배우기 [12] 도널드 트럼프1869 14/10/15 1869
44785 [질문] 질문입니다.. [2] 삼성전자홧팅605 14/10/15 605
39489 [질문] 윈도우태블릿 vs 울트라북 [4] 그림속동화933 14/08/05 933
39006 [질문] codeigniter의 세션관련 질문입니다. [2] 포포탄1349 14/07/29 1349
38825 [질문] 기계식 키보드 질문입니다.. [4] 츄지핱1074 14/07/26 1074
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로