Файлы cookie php работают только на localhost

Недавно я начал заниматься php и сделал этот код для изменения языка с помощью cookie. Он отлично работает на локальном хосте, но когда я загружаю его, браузер, похоже, не сохраняет файлы cookie.

Итак, я попытался установить домен как для локального хоста, так и для сервера, но он все еще не работает.

$whitelist = array(
    '127.0.0.1', 
    '::1'
);
if (in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
    $domain = '.localhost';
} else {
    $domain = '.bjarnesc.de';
}
if (isset($_GET['lang'])) {
    $lang = $_GET['lang'];
    setcookie('lang', $lang, (time()+(86400*30)), "/", $domain);
    $_COOKIE['lang'] = $lang;
}
else if (!isset($_COOKIE['lang'])) {
    setcookie('lang', 'de', (time()+(86400*30)), "/", $domain);
    $_COOKIE['lang'] = 'de';
}
if ($_COOKIE['lang'] == 'en') {
    include("../languages/en.php");
}   else if ($_COOKIE['lang'] == 'de') {
    include("../languages/de.php");
}

Почему есть точка? перед доменным именем .bjarnesc.de?

Kerkouch 24.04.2018 00:03

@Karkouch - это требование спецификации, но игнорируется в основном браузерами, которые делают всю работу

user9487972 24.04.2018 00:11

Просто догадываюсь, но, может быть, у вас есть PHP, настроенный на автоматический запуск сеансов локально, и это не относится к вашей среде prod?

Aleksander Wons 24.04.2018 10:46

Несмотря на то, что я просмотрел много-много сообщений, я только сейчас нашел четкое объяснение, что cookie всегда должен быть установлен в самом начале файла, поэтому теперь он работает. В любом случае спасибо за ответ :)

Bumbibanane 24.04.2018 14:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
97
1

Ответы 1

Скорее всего, проблема в том, что заголовки уже отправлены из-за пробелов во включенных файлах или в самом файле. Либо исправьте это, либо установите cookie вначале.

Другие вопросы по теме