On 8 September 2014 09:09, Ferenc Kovacs <tyr...@gmail.com> wrote:
> On Mon, Sep 8, 2014 at 9:15 AM, Sherif Ramadan <theanomaly...@gmail.com>
> wrote:
>
>> Actually, we shouldn't be doing that all. We should simply just overwrite
>> the header. It wouldn't make much sense to set two headers with the same
>> cookie name when we can just overwrite it.
>>
>>
>>
> that would be a bigger BC break, and without a warning, those people
> affected by the change will have a harder time figuring out what went wrong.
> and as was discussed both in the PR and the bugreport the rfc discourages
> but doesn't prohibit this behavior, so making it impossible for the
> userland to do it would be a bit of an arbitrary restriction.
> maybe we could do something like introducing a new $overwrite = true option
> to the function signature, but setcookie already has 7 arguments, so
> probably isn't a great idea.

How about changing the signature of setcookie() to:

bool setcookie (
    string $name
    [, string $value
    [, int $expire = 0
    [, string $path
    [, string $domain
    [, int $flags = 0
    [, bool $httponly = false
]]]]]])

And creating the following constants for use as flags:

const COOKIE_SECURE = 1;
const COOKIE_HTTPONLY = 2;
const COOKIE_OVERWRITE = 4;

This will also be a small BC break, but would potentially be a
graceful way to trim an argument off setcookie() with minimal impact
to users, making the signature more user-friendly (IMO) and allowing
additional functionality to be added in the future by means of more
flags.

Setting the value of COOKIE_SECURE to 1 covers what I suspect will be
the most common case where the value of this argument is not a bool or
NULL, i.e. specifying 1/0 to reduce line length. If the $httponly arg
is specified and not NULL it can override the value for that element
of $flags. Passing this last argument could emit an E_DEPRECATED,
either immediately or in the future.

This is also not an ideal solution and everyone may hate it, just
throwing it out there.

Thanks, Chris

> --
> Ferenc Kovács
> @Tyr43l - http://tyrael.hu

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to