CI 3.1.8 set_cookie () не работает? - PullRequest
0 голосов
/ 18 мая 2018

Я знаю, что есть очень много вопросов об этом set_cookie() CI, но я не могу найти ответ, cookie не отображается в меню Google Cookies Data.

Я знаю, как его прочитать, но он вообще не отображается в данных куки-файлов браузера.

in ControllerFile.php

$this->load->helper('cookie');
$cookie = array(
    'name'      => 'pre',
    'value'     => $token,
    'expire'    => 86400 * 7,
);
$this->input->set_cookie(
    $cookie['name'], $cookie['value'], $cookie['expire']
);

Настройка в config.php

$config['cookie_prefix']    = 'e_';
$config['cookie_domain']    = '.localhost';
$config['cookie_path']      = '/project.com/catch/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

Thisвеб-сайт Project находится в папке project.com , вот как это выглядит

htdocs/
---- project.com/
-------- catch/
------------ *CI files*
--------- *files*
--------- *files*
---- anotherproject.com/
---- anotherproject.com/
---- anotherproject.com/

Но для файлов [::1] и .localhost нет данных cookie, почему это происходит?

Я уже пытался гуглить, но не смог найти решение, я уже пытался с

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']      = '';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

Но оно тоже не работает.

Добавление log file

INFO - 2018-05-18 08:28:37 --> Config Class Initialized
INFO - 2018-05-18 08:28:37 --> Hooks Class Initialized
DEBUG - 2018-05-18 08:28:37 --> UTF-8 Support Enabled
INFO - 2018-05-18 08:28:37 --> Utf8 Class Initialized
INFO - 2018-05-18 08:28:37 --> URI Class Initialized
INFO - 2018-05-18 08:28:37 --> Router Class Initialized
INFO - 2018-05-18 08:28:37 --> Output Class Initialized
INFO - 2018-05-18 08:28:37 --> Security Class Initialized
DEBUG - 2018-05-18 08:28:37 --> Global POST, GET and COOKIE data sanitized
INFO - 2018-05-18 08:28:37 --> Input Class Initialized
INFO - 2018-05-18 08:28:37 --> Language Class Initialized
INFO - 2018-05-18 08:28:37 --> Loader Class Initialized
INFO - 2018-05-18 08:28:37 --> Helper loaded: url_helper
INFO - 2018-05-18 08:28:37 --> Helper loaded: file_helper
INFO - 2018-05-18 08:28:37 --> Helper loaded: form_helper
INFO - 2018-05-18 08:28:37 --> Database Driver Class Initialized
INFO - 2018-05-18 08:28:37 --> Email Class Initialized
DEBUG - 2018-05-18 08:28:37 --> Session: "sess_save_path" is empty; using "session.save_path" value from php.ini.
INFO - 2018-05-18 08:28:37 --> Session: Class initialized using 'files' driver.
INFO - 2018-05-18 08:28:37 --> Form Validation Class Initialized
INFO - 2018-05-18 08:28:37 --> Controller Class Initialized
INFO - 2018-05-18 08:28:37 --> Model "User_model" initialized
INFO - 2018-05-18 08:28:37 --> Model "Cookie_model" initialized
INFO - 2018-05-18 08:28:37 --> Helper loaded: string_helper
INFO - 2018-05-18 08:28:37 --> Helper loaded: cookie_helper
INFO - 2018-05-18 08:28:37 --> Language file loaded: language/english/form_validation_lang.php
INFO - 2018-05-18 08:28:37 --> Final output sent to browser
DEBUG - 2018-05-18 08:28:37 --> Total execution time: 0.1759

Как видите, в файле журнала вообще нет сообщений об ошибках

Моя настройка Google Chrome

enter image description here

1 Ответ

0 голосов
/ 18 мая 2018

Надеюсь, это поможет вам:

Попробуйте использовать метод массива (альтернативный вариант), ассоциативный массив будет передан в set_cookie:

Заменить

$cookie = array(
    'name'      => 'pre',
    'value'     => $token,
    'expire'    => 86400 * 7,
);
$this->input->set_cookie(
    $cookie['name'], $cookie['value'], $cookie['expire']
);

На это:

$cookie = array(
    'name'      => 'pre',
    'value'     => $token,
    'expire'    => 86400 * 7,
    /* no need to set domain if localhost */
    'domain' => '.localhost',
    'path'   => '/',
    'prefix' => 'e_',
    'secure' => FALSE
);
$this->input->set_cookie($cookie);

Чтобы проверить ваши куки

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

Ссылка: https://www.codeigniter.com/user_guide/libraries/input.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...