Laravel 9, определенный файл cookie удаляется сразу после его создания.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 9, определенный файл cookie удаляется сразу после его создания.

Сообщение Anonymous »

Мы пытаемся создать систему фильтрации для списка вин, поэтому создали пошаговый мастер для установки правильной фильтрации.
Для этого внутри контроллера WineController, который эффективно фильтрует вина, мы проверяем наличие файла cookie и затем приступаем к выполнению запроса.
Проблема в том, что сразу после создания сразу удаляется только конкретный файл cookie (локально это работает, онлайн — нет). ). Мы попробовали другой подход, чтобы правильно сохранить и получить этот файл cookie, мы использовали как файлы cookie laravel, так и файлы cookie php, мы также попробовали использовать сеанс laravel (это была первая идея, но эта конкретная переменная игнорируется).
Сейчас мы используем Laravel 9, это запрос, который эффективно фильтрует вина внутри WineController

Код: Выделить всё

//WineController

/*other code*/

if ( Session::has("regione") || Cookie::has("regione") || isset($_COOKIE['regione']) ) {
if(Cookie::has("regione"))
$cookie = Cookie::get("regione");

if(isset($_COOKIE['regione']))
$cookie = $_COOKIE['regione'];

$wines = (Session::has("regione")) ? $wines->where("regione", Session::get("regione") ) : $wines->where("regione", $cookie );
$regionearray[] = Session::has("regione") ? Session::get("regione") : $cookie;
}

/*other code*/
Мы использовали этот особенно сложный IF, потому что в рабочей среде переменная сеанса «regione» не распознается, то же самое с файлами cookie laravel, единственная переменная, которая имеет такое странное поведение, — это « региона".
В WizardController мы устанавливаем это так

Код: Выделить всё

//WizardController

$session = Session::put('regione', $regioni);
$cookie = Cookie::queue(Cookie::make('regione', $regioni, 1440));
setcookie('regione', $regioni, time()+1440, '/');

if(!isset($cookie) || !isset($_COOKIE['regione'])) {
$data = [
"user" => $user,
"slug" => $slug,
"tipologie" => $tipologie
];
} else{
$data = [
"user" => $user,
"slug" => $slug,
"tipologie" => $tipologie,
"cookie" => $cookie
];
}

return $data;
странно то, что только эта переменная имеет такое поведение, другие файлы cookie и переменные сеанса работают правильно.
Как было сказано ранее, это отлично работает локально и на тестовом домене, а на рабочем - нет.
Извините за плохой английский и/или плохое объяснение проблемы.
Спасибо. за вашу помощь.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -create-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»