Я не могу использовать cookie в Codeigniter - PullRequest
2 голосов
/ 15 октября 2011

Я хочу сохранить статус входа с помощью cookie в Codeigniter, но не могу установить cookie в Codeigniter. Это мой код в контроллере. когда я нажимаю кнопку отправки в форме входа, она вызывает функцию chk_login (), чтобы проверить имя пользователя и пароль в БД. После этого он переходит на эту строку echo "Вы не авторизованы" только . как использовать cookie в Codeigniter.

<?php
class Login extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
                $this->load->helper('cookie');
    }

    function index()
    {
        redirect('login/form_login');
    }

    function form_login()
    {
        $data['title'] = 'Login';
        $this->load->view('form_login_view', $data);
    }

    function goto_test()
    {
            if($this->input->cookie('login')){
               echo "You are logged in"; 
            }
            else{

                echo "You are not log in";  // It show string in this line every time. that mean cookie not set yet. how to use cookie in Codeigniter. 
            }
    }


function chk_login()
{
$this->load->model('login_model', 'login');
$this->login->username = $this->input->post('username');
$this->login->password = $this->input->post('password');

$user_login = $this->login->get_by_user_pass();

         if($user_login==null){
                $data['errors']  = 'Not found Username.<br />';
                $this->load->view('form_login_view', $data);

    }else{

        // I set directed data in cookie but I can't get this cookie in goto_test().

        $this->input->set_cookie(array(
                               'login'=>TRUE,
                'username'=>"aaa",
                'password'=>"123",
                'status'=>"user")); 


            redirect('login/goto_test');  // Go to function goto_test in this class
    }  
}

}
?>

Я пытаюсь проверить с этим кодом, он показывает bool (false) .

$cookie = array(
          'name'   => 'test_cookie',
          'value'  => 'test',
          'domain' => '/',
          'secure' => TRUE
          );

$this->input->set_cookie($cookie); 

var_dump($this->input->cookie('name'));

1 Ответ

0 голосов
/ 17 октября 2011

Теперь я знаю это.Я не могу установить cookie таким образом.У меня есть 2 способа установить cookie.

1.

$cookies = array(
        array(
          'name'   => 'login',
          'value'  => true,
          'domain' => '/',
          'secure' => true
    ),
        array(
          'name'   => 'username',
          'value'  => 'aaa',
          'domain' => '/',
          'secure' => true
    ),
        array(
          'name'   => 'password',
          'value'  => '123',
          'domain' => '/',
          'secure' => true
    )
);

foreach($cookie in $cookies){
        $this->input->set_cookie($cookie); 
}

2.

setcookie('login', true);
setcookie('username','aaa');
setcookie('password','123');

Файл cookie не может быть установлен таким образом.

$cookie = array(
          'login'   => TRUE,
          'username'  => 'aaa',
          'password' => '123'
          );

$this->input->set_cookie($cookie); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...