如何在codeigniter4中使用cookie和重定向

eeq64g8w  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(154)

大家好。我正在使用codeigniter4,我希望能够存储cookie,然后重定向到另一个页面。如果我设置了一个cookie,而不包括重定向过程,Cookie存储成功,但问题是,当我做重定向,cookie没有保存了。我如何解决,使cookie保存和重定向。

public function loginProcessor()
{
    helper(['cookie']);
    $checkStatus = true;

    if ($checkStatus) 
    {
        set_cookie('nameCookie', 'CookieSomething', time() + 60*60*24*30);
    }

    return redirect()->to('dashboard');
}
ndh0cuux

ndh0cuux1#

如果您将->withCookies()附加到重定向,则它将从全局响应示例复制所有cookie。对于您的示例,它将是:

public function loginProcessor()
{
    helper(['cookie']);
    $checkStatus = true;

    if ($checkStatus) 
    {
        set_cookie('nameCookie', 'CookieSomething', time() + 60*60*24*30);
    }

    return redirect()->to('dashboard')->withCookies();
}

来源

c8ib6hqw

c8ib6hqw2#

值得一提的是,我也遇到了使用Cookie函数的会话库的问题,所以我求助于一个旧版本,它确实有效。

function setMyCookie($name,$value,$time,$params = array()){
    if (empty($params)){
        $config = config('App');

        $params = array(
            'expires'   => $time,
            'path'      => $config->cookiePath,
            'domain'    => $config->cookieDomain,
            'secure'    => $config->cookieSecure,
            'httponly'  => $config->cookieHTTPOnly,
            'samesite'  => $config->cookieSameSite,
        );
    }

    setcookie($name,$value,$params);
}

它被保存为帮助器,然后从控制器等调用。

相关问题