2013-05-23 3 views
0

로그인 시스템을 만들고 쿠키에 사용자 이름과 암호 (해시 및 소금에 절인)를 저장하려고합니다. 그러나 쿠키는 유지되지 않습니다. 하단의 var_dump는 쿠키의 값을 표시하지만 새 페이지를 열면 값이 표시되지 않습니다. 입니다.CodeIgniter 쿠키가 지속되지 않습니다

다음은 제 CodeIgniter 코드입니다.

function set_cookies() { 
     $this->load->helper('cookie'); 

     $cookieData = array('name' => 'username', 
          'value' => $this->username, 
          'expire' => 86500, 
          'domain' => ".example.com", 
          'path' => '/' 
         ); 
     $this->input->set_cookie($cookieData); 

     $cookieData = array('name' => 'password', 
          'value' => $this->password, 
          'expire' => 86500, 
          'domain' => ".example.com", 
          'path' => '/' 
         ); 
     $this->input->set_cookie($cookieData); 

     var_dump($this->input->cookie("username")); 
    } 

다시 쿠키 얻을이 시도 : 공공 기능 testLogin() { 위해서 var_dump ($ this-> 입력); 인쇄 "

"; var_dump ($ this-> input-> cookie ("username")); }

나는 오래 전에이 문제에 부딪 혔고 해결책을 찾지 못했습니다. 이제 새로운 프로젝트에서 같은 문제가 생겼습니다. 도움이 많이, 많이 감사합니다!

+0

안녕하세요 ... var_dump 대신 ...이 기능을 사용하여 cokkie의 존재 여부를 확인할 수 있습니까 ??? if(get_cookie('username')) { echo "Yes": } else{ echo "NO": }

+0

다른 사람의 암호를 쿠키에 저장하지 마십시오. 안전하지 못한 주주입니다. –

+0

@NishantLad - 내가 vardump 할 때 그 표현식의 부울 값은 "거짓"입니다. –

답변

0

이제 CodeIgniter에 대해 많이 알지 못하지만 PHP 함수 setcookie를 사용합니다. 그렇다면, 그 기원 이후 초 단위의 유닉스 타임 스탬프 인 만료 시간이 필요합니다. 시간을해야합니다 귀하의 경우 "만료"을 의미

() + 86500.

이 꽤 일반적인 실수이다. :)

+0

CodeIgniter의 쿠키 기능은 사용자가 설정 한 만료 값에'time()'을 추가합니다. –

+0

@Cryode가 맞습니다 ^ –

0

Session Class을 사용해보십시오.

이것은 로그인 데이터를 처리하는 데 유용합니다.

$this->session->set_userdata('username', $username); 

$username = $this->session->userdata('username'); 

CodeIgniter가 데이터를 저장하는 데 사용하는 MySQL 데이터베이스를 추가하는 것이 좋습니다. 지속 시간을 config.php으로 설정할 수도 있습니다.

관련 문제