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 = ? "; 이렇게 작성하시는게 맞습니다. 지금보니 테이블명과 컬럼에 ' 가 붙어있는데 안쓰셔도 되요.. 아니 쓰면 안될꺼같은데-.-;; 저렇게 써본적이 없어서 모르겠네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
53267 [질문] 삼성 scsa요즘 어떤가요?+문과 프로그래밍 [7] iPhone67137 15/02/06 7137
49094 [질문] 무명 개발자도 '스팀' 인디게임 카테고리 발매할 수 있나요? [2] 츄지Heart1217 14/12/09 1217
48984 [질문] Ctrl이나 Alt 역할을 하는 페달 같은게 있을까요? [4] Crystal Castles1177 14/12/08 1177
48782 [질문] [자바] 이클립스 단축키 관련 질문입니다. [4] Jannaphile2115 14/12/04 2115
47886 [질문] [C++] 과제하다가 발암에 걸려 질문드립니다. [14] 화이트데이2042 14/11/23 2042
47858 [질문] [C++] 버블 정렬 코딩 잘못된 부분좀 봐주세요ㅠㅠㅠ. [2] 삭제됨776 14/11/23 776
47207 [질문] 컴퓨터 조립 견적 조언 부탁드립니다.(w/ GTX 970) [4] Zwei1357 14/11/14 1357
46925 [질문] NC 소프트 인적성 검사 질문입니다. [4] 레이미드10678 14/11/11 10678
46502 [질문] 태블릿 PC 고민중이에요~ [6] 에루베루미루1942 14/11/05 1942
44859 [질문] 비전공자가 모바일 기기 코딩 배우기 [12] 도널드 트럼프1791 14/10/15 1791
44785 [질문] 질문입니다.. [2] 삼성전자홧팅534 14/10/15 534
39489 [질문] 윈도우태블릿 vs 울트라북 [4] 그림속동화782 14/08/05 782
39006 [질문] codeigniter의 세션관련 질문입니다. [2] 포포탄1227 14/07/29 1227
38825 [질문] 기계식 키보드 질문입니다.. [4] 츄지핱997 14/07/26 997
37617 [질문] 맥에서 Visual C++ 2010으로 코딩 연습할때 입력에 대해 [4] 뜨리커풀1225 14/07/10 1225
35369 [질문] 노트북 추천 부탁드립니다! [4] Felice718 14/06/12 718
33655 [질문] pc고수분 조립 도와주세요 [3] 라캉~797 14/05/21 797
32465 [질문] 리눅스 개발자가 윈도우에서 편하게 쓸만한 코드편집기 있을까요? [16] 이걸어쩌면좋아1320 14/05/07 1320
30955 [질문] 요런 웹페이지랑 비슷하게 만들려면 어떻게 해야 할까요? [3] 깜디아3378 14/04/17 3378
29491 [질문] 코딩 + 문서작업 노트북: 맥? 윈도? [19] tristan4395 14/03/28 4395
28011 [질문] 200만~300만원대 노트북 추천좀 부탁드려요! [6] 데로2160 14/03/11 2160
27091 [질문] 하위버전 익스 프린터 출력관련 질문이 있습니다. 적절한센스556 14/02/27 556
24846 [질문] 마우스 추천 부탁 드립니다. [2] 미스터키튼1202 14/01/29 1202
목록 이전 다음
댓글

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