Hoi

Ik probeer mijn cookies om te zetten naar array opties.
De cookies worden wel gezet maar zonder datum. Het zijn dus sessie cookies :(

Ik zet mijn cookies met
$a = koekjesopties(5000);
setcookie('msg', 1, $a);


Mijn array ziet er zo uit
(
    [expires] => Mon, 09-Jun-2036 00:00:00 GMT
    [path] => /
    [samesite] => Lax
    [httponly] => true
    [secure] => false
)
Ook geprobeerd zonder streepjes in de datum.

Mijn opties worden zo gebouwd

    function koekjesopties($dagen) {
        $a = array(
            'expires'=>CookieEndTime($dagen),
            'path'=>'/',
            'samesite' => 'Lax'
        );
                            
        if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') {
            $a['httponly']='true';
            $a['secure']='false'; 
        }
        return $a;
    }


Wat doe ik weer verkeerd?

Jan
Een object als JSON-string in een cookie? Waarom?
En doe je dit ook vaker?:
'secure' => false,

Het enige dat je doorgaans nodig hebt is een sessie ID, zodat de server al het andere kan bewaren.

Ik deed dat eerst via $_SESSION, met weer later een eigen implementatie van de SessionHandlerInterface, om er achter te komen dat er helemaal geen touw aan vast te knopen was welke functies nou wanneer precies werden aangeroepen door PHP. Toen ben ik afgestapt van $_SESSION, en heb ik zelf maar wat geschreven dat wel te volgen was.

Reageren