Как настроить путь к cookie-файлам из разных ссылок (локальных и серверных) - PullRequest
0 голосов
/ 25 марта 2019

У меня возникли проблемы с настройкой правильного пути Cookie.Чего я хочу достичь?

  1. У меня есть проект, который работает на моем локальном сервере, с путем http://localhost/project_folder/Controller/function

  2. Я могуустановите путь Cookie, используя упомянутый относительный путь /project_folder/Controller/function, и он работает

  3. Но когда проект выполняется на другом сервере, где структура немного отличается, то есть: http://localhost/project partзаменяется на http://www.example.com/Controller, затем начинается проблема

Я использую платформу CodeIgniter.

Для достижения поставленной цели я пытался использоватьbase_url() функция CodeIgniter обеспечивает, и если я изменяю путь к сайту в конфигурации, он работает на втором сервере, но не работает на локальном и наоборот ...

Как мне правильно обращаться с Cookieпуть в этой ситуации?


РЕДАКТИРОВАНИЕ:

Это простой набор файлов cookie (я использую функцию пользовательских файлов cookie в JavaScript и задаюCookie через JavaScript):

createCookie('filter_products', params, '1', '<?php echo base_url('Controller/function'); ?>');

Проблема в том, что base_url() веселоCtion возвращает путь, указанный ниже, как я уже говорил:

http://localhost/project_folder/Controller/function

Но на сервере часть localhost/project_folder/ заменяется именем домена, так как я могу динамически создать путь Cookie

1 Ответ

0 голосов
/ 26 марта 2019

Первое, что приходит мне в голову, это то, что вам следует избегать установки Cookies через JavaScript, если это возможно, и использовать встроенный помощник CodeIgniter или встроенные функции PHP .

На ваш вопрос:

Для динамического решения, на каком сервере вы находитесь, вы можете использовать суперглобальное значение $_SERVER PHP , которое доступно из любой точкиваш код.Поле SERVER_NAME содержит фактическое имя хоста, поэтому вы можете использовать что-то вроде:

<?php

if (isset($_SERVER, $_SERVER['SERVER_NAME'])) {
    if ($_SERVER['SERVER_NAME'] === 'localhost') {
        // set base path to localhost/project_folder
    } else {
        // set base path to www.example.com <- MORE SECURE
        // or, set base path to $_SERVER['SERVER_NAME'] <- INSECURE (any server could be written to the config)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...