Создайте файл cookie с флагами secure и httponly для отображения баннера.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создайте файл cookie с флагами secure и httponly для отображения баннера.

Сообщение Anonymous »

У меня недостаточно опыта в PHP и JavaScript, но я пытаюсь создать для себя небольшой веб-сайт.
На этом веб-сайте я хочу отображать небольшой баннер с текстом внутри когда новый пользователь впервые заходит на мой сайт (какой бы веб-страница ни была). Баннер имеет следующие характеристики:
  • При первом отображении он остается на экране в течение 7 секунд (чтобы пользователь мог его прочитать)
    После его исчезновения пользователь может продолжать просматривать сайт и страницы, больше не видя баннер.
Что нужно сделать Итак, я подумал создать плагин (для WORDPRESS), который создает файл cookie, назовем его Banner_read. После исчезновения баннера создается файл cookie, и его наличие не приводит к созданию баннера. Файл cookie действителен только для сеанса (файл cookie сеанса).
В первый раз я создал баннер и файл cookie с помощью кода JavaScript, также установив флаг «безопасно». Код JavaScript проверяет наличие файла cookie и, если он не существует, создает баннер (с его настройками). Если я ограничусь этим, код будет работать. В частности, баннер отображается в течение семи секунд, а файл cookie создается после его исчезновения, в зависимости от того, какая веб-страница отображается первой.
Тогда на всякий случай, а также из любопытства я хотел еще установить флаг «httponly», но, насколько я понимаю, это нужно делать через php-код, так как код javascript (для проверки наличия куки) не работает, если httponly установлен флаг.
Я пытался создать код PHP для проверки существования файла cookie и его создания, а также код JavaScript для отображения баннера, но этот код, похоже, не работает. В частности, баннер не отображается и файл cookie создается сразу.
Может быть, для этого простого файла cookie мне не нужны оба флага, но, не зная предмета глубоко, я бы предпочитаю перестраховаться.
Первый код – я сообщаю здесь о работающем коде JavaScript (файл CSS для стилизации является внешним):

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


document.addEventListener('DOMContentLoaded', function() {
if (!document.cookie.split('; ').find(row => row.trim().startsWith('banner_read='))) {
var banner = document.createElement('div');
banner.id = 'cookie-banner';
banner.className = 'cookie-banner';
banner.innerHTML = '
TEXT HERE
';
document.body.appendChild(banner);

setTimeout(function() {
banner.classList.add('hide');
document.cookie = "banner_read=true; path=/; Secure; SameSite=Strict";
}, 7000); // 7 seconds
}
});


Второй код — здесь код PHP и Javascript, который не работает:

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


document.addEventListener('DOMContentLoaded', function() {
var banner = document.createElement('div');
banner.id = 'cookie-banner';
banner.className = 'cookie-banner';
banner.innerHTML = '
TEXT HERE
';
document.body.appendChild(banner);

setTimeout(function() {
banner.classList.add('hide');
}, 7000); // 7 seconds
});


Вот CSS-файл:

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

/* css/custom-cookie-manager.css */
.cookie-banner {
position: fixed;
bottom: 0;
width: 100%;
background-color: #000;
color: #fff;
text-align: center;
height: auto;
z-index: 1000;
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
padding: 14px 20px 0 20px;
box-sizing: border-box;
}

.cookie-banner.hide {
visibility: hidden;
}
Я пытался создать PHP-код для проверки существования файла cookie и его создания, а также код JavaScript для отображения баннера, но код не работает должным образом.Проблемы
  • Куки создаются сразу, еще до исчезновения баннера (а я хочу после его исчезновения )
  • Даже если файл cookie установлен, баннер отображается, если пользователь переходит с веб-страницы на домашнюю страницу (example.com/login на example.com). Между другими страницами этого не происходит.
Обновить
Я попробовал начальную версию отладка с некоторыми сообщениями журнала в коде JavaScript и после установки файла cookie

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

// Add the cookie banner
function custom_cookie_manager_banner() {
if (!isset($_COOKIE['banner_read'])) {
?>

document.addEventListener('DOMContentLoaded', function() {
console.log('Document loaded. Adding cookie banner...');
var banner = document.createElement('div');
banner.id = 'cookie-banner';
banner.className = 'cookie-banner';
banner.innerHTML = '
TEXT HERE
';
document.body.appendChild(banner);

console.log('Cookie banner added to the DOM.');

setTimeout(function() {
console.log('Hiding cookie banner...');
banner.classList.add('hide');
}, 7000); // 7 seconds
});



console.log('set cookie..');



Подробнее здесь: [url]https://stackoverflow.com/questions/78812862/create-a-cookie-with-the-secure-and-httonly-flags-to-display-a-banner[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Установите cookie без odomain ', но с `secure' и` httponly`
    Anonymous » » в форуме Php
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Wordpress, как добавить флаг httponly и secure ко всем функциям SETCOOKIE()?
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Мой браузер Dev Tools -> Application -> Cookie отображает httponly cookie, установленные моим бэкэнд [Duplicate]
    Anonymous » » в форуме Javascript
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Cookie Cookie Cookie Cookie Core Identity ASP.NET хранится, но не разрешается - Blazor Web App
    Гость » » в форуме C#
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость
  • Файл cookie не содержит атрибутов «безопасный» и «HTTPOnly».
    Anonymous » » в форуме Apache
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous

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