For PHP 5.6.40, there exists a workaround (the hack on path parameter) which does not involve rebuilding PHP.
If you have no problem rebuilding the PHP binary, I managed to port this feature from PHP 7.3 to PHP 5.6.40, and there is now a pull request.
I needed it for our projects that aren't migrated yet.
I know 5.6 branch is deprecated, I am just sharing.
Pull request:
https://github.com/php/php-src/pull/6446
Our repo with the changes:
https://github.com/Inducido/php-src/tree/PHP-5.6.40
Build tested on Debian 8.11
New Feature
Session:
. Added support for the SameSite cookie directive for setcookie(),
setrawcookie() and session_set_cookie_params().
Port from PHP 7.x branch
they all have an "samesite" additionnal parameter at the very end (string)
prototypes:
bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly[, string samesite]]]]]]])
bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly[, string samesite]]]]]]])
void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly[, string samesite]]]]])
(session_get_cookie_params updated too)
Changes to INI File Handling
- session.cookie_samesite
. New INI option to allow to set the SameSite directive for cookies. Defaults
to "" (empty string), so no SameSite directive is set. Can be set to "Lax"
or "Strict", or "None" which sets the respective SameSite directive.
when using "None", make sure to include the quotes, as
none
is interpreted
like false
in ini files.
This solves the issue "This Set-Cookie was blocked due to user preferences" in Chrome.