| 제목 | 세션에 자꾸 눌값이 들어갑니다.. | ||
|---|---|---|---|
| 글쓴이 | 초보러 | 작성시각 | 2014/10/31 21:22:57 |
|
|
|||
|
저번에 질문했지만 적절한 해결책을 얻지 못해 다시 여쭤보려고 합니다... 이번엔 코드까지 자세하게 올려 도움을 구하고자 하는점 양해부탁드립니다! 먼저 문제는 var_dump($this->session->all_userdata()); 코드를 이용해 세션값을 조회 해보면
먼저 로그인 하는 부분의 코드를 보여 드리자면 (application/controllers/login.php)
class Login extends CI_Controller {
function index(){
$this->load->model('Join_model');
$this->load->view('head');
if($this->input->post('id')){
$data = $this->Join_model->gets(array(
'table'=>'acc_wait_tb',
'id'=>$this->input->post('id'),
'password'=>$this->input->post('password'),
));
if($data == true){
$data = $this->Join_model->get_session($this->input->post('id'));
$dd = $this->db->get_where('acc_wait_tb', array('id'=>$this->input->post('id')))->row();
$new_data = array(
'user_id'=>$dd->id,
'name'=>$dd->name,
'email'=>$dd->email,
);
$this->session->set_userdata($new_data);
echo "<script>
location.href='/index.php/main';
</script>";
}else if($data == false){
echo "<script>alert('로그인 정보가 일치하지 않습니다.');</script>";
$this->load->view('log_main');
$this->load->view('footer');
}
}else{
$this->load->view('log_main');
$this->load->view('footer');
}
}
}
입니다. 여기서 데이터베이스에서 정보를 비교해 정보가 일치할 경우 set_userdata($new_data);를 이용해 세션을 설정합니다.
그리고 난 다음 다른 페이지로 넘어가 세션을 조회해보면 위와 같이 user_data 에 눌값이 들어갑니다. 덤프를 떠본 곳의 코드는(application/views/nav.php)
<?php var_dump($this->session->all_userdata());
$user_id = $this->session->userdata('user_id');?>
<?php if($user_id != ""): ?>
<p class="navbar-text pull-right" style="margin-right:30px;">안녕하세요.
<a class="navbar-link" href=""><?=$this->session->userdata('name')?></a> 님
</p>
<?endif;?>
입니다.
어느곳에서 잘못이 있는지 감을 잡을수가 없네요.. 부탁드립니다...!
|
|||
| 다음글 | 마냐님 보드 세팅방법 아시는분.. (2) | ||
| 이전글 | ci에서 지원하는 라이브러리중에 upload 라이브러리... (1) | ||
|
taegon
/
2014/11/01 18:40:30 /
추천
0
|
|
초보러
/
2014/11/01 21:32:46 /
추천
0
taegon // 답변 감사합니다^^. 네 get_where은 코드이그나이터 자체에서 지원해주는 메소드라 db가 맞습니다. 일단 하나하나 넣어보겠습니다. 다른방식으로 접근하게 해주셔서 감사합니다!
확인 해봤는데 set_userdata('user_id','data'); 하고 덤프를 떠봤는데도 bool(false) 로 나타납니다.. 어디가 어떻게 잘못된 걸까요?... |
$dd = $this->db->get_where('acc_wait_tb', array('id'=>$this->input->post('id')))->row();
이 부분에서 db가 아니라 Join_model이 아니신지? 먼저 쿼리해오는 데이터가 정상적으로 리턴 되는지를 확인해 보시고 세션에 넣어보세요.
어쟀든 CI 세션이 생성되었다면 쿠기가 정상적으로 쓸 수 있다는 이야기이니 array 형태로 넣지 마시고
$this->session->set_userdata("login_id", "test"); 형태로 하나하나 넣어보세요~
그리고 출력하셔서 확인해보시면 문제점을 잡으실 수 있을 것 같습니다.