无法使用setter方法更新Cookie信息

时间:2018-07-12 16:04:27

标签: php arrays oop cookies

这是我Cookie课程的开始:

<?php
namespace Core;

use \App\Config;

class Cookie implements UserInformationInterface
{

    public static function start()
    {
        if (!isset($_COOKIE[Config::COOKIE_NAME])) {
            setcookie(Config::COOKIE_NAME, serialize(array()), time() + Config::COOKIE_TIME, '/', false, false);
        }
        return true;
    }

    public static function set($array)
    {
        self::start();
        if (!empty($array)) {
            if ($_COOKIE[Config::COOKIE_NAME]) {
                $cookieArray = unserialize($_COOKIE[Config::COOKIE_NAME]);
            } else {
                $cookieArray = array();
            }

            foreach ($array as $key => $value) {
                $cookieArray[$key] = $value;
            }

            $_COOKIE[Config::COOKIE_NAME] = serialize($cookieArray);
            setcookie(Config::COOKIE_NAME, $_COOKIE[Config::COOKIE_NAME], time() + Config::COOKIE_TIME, '/', false, false);
            return true;
        }

        return false;
    }
}

我在sigininAction()类中的Home包含以下几行:

Cookie::set(array('remember' => 1));
header('Location: ' . Config::BASE_URL . 'user/dashboard/');
exit;

但是,如果我var_dump($_COOKIE[Config::COOKIE_NAME])到达user/dashboard/后,就会得到以下内容,这是我的start()方法中设置的默认cookie值,而不是应该更新的cookie值。使用我的set()方法创建的。:

string(6) "a:0:{}"

有人可以看到我要去哪里了吗?请让我知道是否需要更多代码。

0 个答案:

没有答案