Каков правильный синтаксис для setcook ie () в php 7.3? - PullRequest
0 голосов
/ 17 марта 2020

Каков правильный синтаксис для setcook ie () в PHP 7.3? Я обычно использую setcook ie () следующим образом:

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1);

Это работает, но как мне добавить тот же параметр сайта? Я пытался, как это, но это не удается с php ошибки:

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1,['samesite'=>'Lax']);

ошибки: PHP Предупреждение: setcook ie () ожидает максимум 7 параметров, 8 учитывая zzz.com/index . php в строке 73, реферер: https://zzz.com/

Спасибо, Тодд

1 Ответ

2 голосов
/ 17 марта 2020

PHP 7.3 представил альтернативный синтаксис для setcook ie () :

Добавлена ​​альтернативная подпись, поддерживающая массив опций. Эта подпись также поддерживает настройку атрибута SameSite cook ie.

Это означает, что вы предоставляете только первые два аргумента, как в старой версии, и помещаете остальные в массив параметров:

setcookie('genone', 'genoneinfo', [
    'expires' => $cookie_expiration_time,
    'path' => '/',
    'domain' => '',
    'secure' => true,
    'httponly' => true,
    'samesite' =>'Lax',
]);

Здесь имена параметров из старой версии становятся ключами массива согласно их описанию в документации:

Ассоциативный массив, который может иметь любой из ключей срок действия , путь , домен , secure , httponly и samesite . Значения имеют то же значение, что и для параметров с одинаковым именем.

...