2012-10-26 7 views
0

몇 가지 이유로 간단한 예제로 쿠키를 설정할 수 없습니다. 웹에서 찾은 모든 사례도 실패했습니다. 나는 뭔가를 그리워하는지 궁금해. Codeigniter 쿠키가 설정되지 않음

내가 쿠키 및 다른 방법을 설정 한 후 REFRESH을 추가 " 쿠키이 설정되지 않습니다"라고 유지 * get_language() * 링크 클릭하지만 여전히 행운을 통해 그것을 읽을 수 있습니다. 사전에

감사

VIEW

<p> 
    <a href="<?php echo site_url('welcome/set_language/english'); ?>">English</a> 
    <br /> 
    <a href="<?php echo site_url('welcome/set_language/spanish'); ?>">Spanish</a> 
    </p> 

    <br /> 
    <p><a href="<?php echo site_url('welcome/get_language'); ?>">Get Language</a></p> 

CONTROLLER

class Welcome extends CI_Controller 
{ 
    var $cookie_name = 'language'; 

    public function __construct() 
    { 
     parent::__construct(); 

     $this->load->helper('url'); 
     $this->load->helper('cookie'); 
    } 

    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 

    public function set_language() 
    { 
     if($this->uri->segment(3) != false) 
     { 
      $cookie = array(
          'name'  => $this->cookie_name, 
          'value'  => $this->uri->segment(3), 
          'expire' => '86500', 
          'domain' => '.language.com', 
          'secure' => true 
          ); 

      set_cookie($cookie); 

      redirect(null, 'refresh'); 
     } 
    } 

    public function get_language() 
    { 
     if (! get_cookie($this->cookie_name)) 
     { 
      echo 'Cookie not set'; 
     } 
     else 
     { 
      echo get_cookie($this->cookie_name); 
     } 
    } 

}

답변

0

당신은/볼 RELO 전에 쿠키를 사용할 수 없습니다 페이지 작성 중. 즉, set_cookie ($ cookie) 이후 페이지 새로 고침을 구현해야합니다. 당신이 그것의 상태를 얻기 전에.

또 다른 것은, 당신은

'domain' => 'language.com' 

'domain' => '.language.com' 

이 쿠키는 http://www.language.com, http://language.com 및 기타 하위 도메인을 withing에 accessable 한 있는지 확인하기 위해 변경 싶어 할 수있다.

+0

쿠키를 설정 한 후 코드를 업데이트하고 새로 고침을 추가했지만 여전히 운이 좋습니다. – BentCoder

+0

쿠키 도우미를 미리로드합니까? - $ this-> load-> helper ('cookie'); 또한 다음 예제와 같이 경로를 전달하십시오. http://codeigniter.com/user_guide/libraries/input.html ($ this-> input-> set_cookie()까지 스크롤) – Aidas

관련 문제