Чат Telegram
Группа ВКонтакте
Новый комментарий


1nSide

Значения время выставляю на 0 работает на 20 не работает


setcookie('login' , 'admin' , 20 , '/');
setcookie('Password' , '123' , 20 , '/');
echo 'Cookie отработало';
1nSide

хотя во вкладке сеткуки пишется что присутствуют
Set-Cookie: login=admin; expires=Thu, 01-Jan-1970 00:00:20 GMT; Max-Age=0; path=/
Set-Cookie: Password=123; expires=Thu, 01-Jan-1970 00:00:20 GMT; Max-Age=0; path=/

ivashkevich

Всё правильно, куки действительно устаревают спустя 20 секунд от момента начала эпохи unix. Я же не просто так просил ознакомиться с документацией. Почитайте внимательно про параметр expire :)

dom1r

Не знаю как лучше так:

setcookie('login', 'admin', time() + 20, '/');

Или так:

$ttl = time() + 20;
setcookie('login', 'admin', $ttl, '/');
ivashkevich

Хоть как =) Понятно и так и так.

Kostik04

Сделал всё, как вы сказали, но всё равно выдаёт ошибку Warning: Cannot modify header information - headers already sent by (output started at W:\domains\myproject.loc\www\primer_2.php:1) in W:\domains\myproject.loc\www\primer_2.php on line 2
Вот мой код:

<?php
setcookie('login', 'admin', 0, '/');
ivashkevich

Значит что-то выводится перед тем, как вызывается эта функция.

Kostik04

Спасибо большое, оказывается кодировка была не UTF-8.

ArtemijeKA

А почему вашему сайту доступны все мои куки(yandex, mail, vk)? Когда как скажем сайту youtube доступны только youtube.com и googe.com куки?

ivashkevich

Это куки, которые были запрошены с моего сайта в эти сервисы (скрипты статистики, встроенное видео с ютуба). Просто так нельзя получить куки для другого сайта.

ArtemijeKA

Понял, спасибо.

nail_nasyrov@mail.ru

Выходит уже описанная ошибка

Warning: Cannot modify header information - headers already sent by (output started at W:\domains\myproject.loc\www\index.php:1) in W:\domains\myproject.loc\www\index.php on line 3

код

<?php

setcookie('login1', 'admin1', 0, '/');

//var_dump($_COOKIE);

?>

нашел решение
output_buffering = on

demyanovpaul@yandex.ru

Укажите параметр $ttl в функции setcookie равным 20.

setcookie('cooks', 'kakay-to stroka', time() + 20);

Все проверил, отработало через 20 секунд умерла.

ivashkevich

Отлично)

virtual2018

В документации третий параметр setcookie($name, $value, $ttl, $path), называется $expire.
"Если указать 0, то cookie будет установлена навсегда (пока её не удалят)" - в документации:
"Если задать 0 или пропустить этот аргумент, срок действия cookie истечет с окончанием сессии (при закрытии браузера)" - не противоречит, но дополняет.

ivashkevich

Угу, при этом в современных браузерах понятие "сессии" у каждого своё =)

Pavel-Tonk

В файле setCookie установил

<?php
setcookie('login','admin',time()+20,'');

В файле getCookie сделал вывод

<?php
var_dump($_COOKIE);

сколько не перезагружаю cookie живы и выводятся, в чем ошибся? в Expires 2018-12-03T22:04:59.363Z
время по серверу 01:01:22 04.12.2018 (date('H:i:s d.m.Y');)

ivashkevich

Потому что этот срок действия для браузера, а не для сервера. Когда подойдет это время на компе пользователя, они удалятся из браузера.

Pavel-Tonk

01:01:22 04.12.2018 Так это время у меня и было по факту, а это уже прошло 2018-12-03T22:04:59.363 3 часа назад.

ivashkevich

Смотрите наличие куки в браузере (загуглите как). Если они там есть, значит не протухли.

Bogdan

вроде поставил, но я так понял что они в куки даже не попадают,ну по крайней мере когда я делаю вывод куки, то у меня ничего не отображает, хотя даже 20 сек не прошло. но в setCookies в нетворке пишет Set-Cookie: login=admin; expires=Thu, 01-Jan-1970 00:00:20 GMT; Max-Age=0; path=/
Set-Cookie: Password=123; expires=Thu, 01-Jan-1970 00:00:20 GMT; Max-Age=0; path=/
так что думаю что все отработало верно

ivashkevich

Потому что вместо 20 нужно написать time() + 20

excent63

Спасибо за урок!

<?php
setcookie('login','admin', time()+20,'/');
ivashkevich

Пожалуйста)

Moskva

Код:

setcookie('login', 'admin', time()+20 , '/');
setcookie('password', '12345', time()+20 , '/');
echo 'Куки успешно установлены';
ivashkevich

Отлично

H3licoptero
setcookie('login', 'admin', time() +20, '/');
setcookie('password', '123', time() -20, '/');
echo 'Cookie установлены.';

Отработала 20 сек и умерла. Второй вариант попробовал, потому что кука висела после урока в браузере. Установил с '-', удалилась.

Онлайн-курсы PHP и MySQL
Обучение с полного нуля до уровня джуниора!
Начать бесплатно
Логические задачи с собеседований